diff --git a/src/Generator/Program.cs b/src/Generator/Program.cs index 65b7e5c..97ac6eb 100644 --- a/src/Generator/Program.cs +++ b/src/Generator/Program.cs @@ -945,6 +945,10 @@ public static class Program { "D3D11_BUFFER_UAV::Flags", "D3D11_BUFFER_UAV_FLAG" }, { "D3D11_BUFFEREX_SRV::Flags", "D3D11_BUFFEREX_SRV_FLAG" }, + { "D3D11_RESOURCE_FLAGS::BindFlags", "D3D11_BIND_FLAG" }, + { "D3D11_RESOURCE_FLAGS::CPUAccessFlags", "D3D11_CPU_ACCESS_FLAG" }, + { "D3D11_RESOURCE_FLAGS::MiscFlags", "D3D11_RESOURCE_MISC_FLAG" }, + // D3D12 { "D3D12_RENDER_TARGET_BLEND_DESC::RenderTargetWriteMask", "D3D12_COLOR_WRITE_ENABLE" }, @@ -996,6 +1000,8 @@ public static class Program { "D3DCompileFromFile::Flags1", "D3DCOMPILE" }, { "D3DCompressShaders::uFlags", "D3D_COMPRESS_SHADER" }, { "D3DDisassemble::Flags", "D3D_DISASM" }, + + { "D3D11On12CreateDevice::Flags", "D3D11_CREATE_DEVICE_FLAG" }, }; private static readonly HashSet s_visitedEnums = new(); @@ -1051,17 +1057,18 @@ public static class Program } string docFile = splits[1]; - string fileName = string.Empty; + string subFolderName = string.Empty; for (int i = 1; i < splits.Length - 1; i++) { - if (string.IsNullOrEmpty(fileName) == false) + if (string.IsNullOrEmpty(subFolderName) == false) { - fileName += "."; + subFolderName += "."; } - fileName += splits[i]; + subFolderName += splits[i]; } + string fileName = subFolderName; string ns = string.Empty; if (string.IsNullOrWhiteSpace(fileName) == true) { @@ -1073,13 +1080,10 @@ public static class Program ns = $"{folderRoot}.{fileName}"; } - fileName += ".cs"; - if (docFile != "json") { string subdirectory = Path.Combine(outputFolder, docFile); - if (Directory.Exists(subdirectory) == false) - Directory.CreateDirectory(subdirectory); + } else { @@ -1092,7 +1096,10 @@ public static class Program } string apiName = ns; - string apiFolder = Path.Combine(outputFolder, docFile); + string apiFolder = Path.Combine(outputFolder, subFolderName); + + if (Directory.Exists(apiFolder) == false) + Directory.CreateDirectory(apiFolder); GenerateConstants(apiFolder, apiName, docFile, api); GenerateTypes(apiFolder, apiName, docFile, api); @@ -1102,11 +1109,12 @@ public static class Program private static void GenerateConstants(string folder, string apiName, string docFileName, ApiData api) { using CodeWriter writer = new( - Path.Combine(folder, "Apis.cs"), + Path.Combine(folder, $"Apis.cs"), apiName, docFileName, $"Win32.{apiName}"); + bool needNewLine = false; using (writer.PushBlock($"public static partial class Apis")) { foreach (var constant in api.Constants) @@ -1127,6 +1135,11 @@ public static class Program if (skipValue) continue; + if (needNewLine) + { + writer.WriteLine(); + } + string typeName = GetTypeName(constant.Type); if (typeName == "Guid") { @@ -1157,7 +1170,7 @@ public static class Program writer.WriteLine($"public const {typeName} {constant.Name} = {constant.Value};"); } - writer.WriteLine(); + needNewLine = true; } } writer.WriteLine(); diff --git a/src/Vortice.Win32.Direct3D11/Generated/Apis.cs b/src/Vortice.Win32.Direct3D11/Generated/Apis.cs index d8f2606..71d49d6 100644 --- a/src/Vortice.Win32.Direct3D11/Generated/Apis.cs +++ b/src/Vortice.Win32.Direct3D11/Generated/Apis.cs @@ -2396,6 +2396,5 @@ public static partial class Apis public const string D3DCSX_DLL_A = "d3dcsx_47.dll"; public const string D3DCSX_DLL = "d3dcsx_47.dll"; - } diff --git a/src/Vortice.Win32.Direct3D11on12/Generated/Apis.Functions.cs b/src/Vortice.Win32.Direct3D11on12/Generated/Apis.Functions.cs index 98e2908..5c93328 100644 --- a/src/Vortice.Win32.Direct3D11on12/Generated/Apis.Functions.cs +++ b/src/Vortice.Win32.Direct3D11on12/Generated/Apis.Functions.cs @@ -12,5 +12,5 @@ namespace Win32.Graphics.Direct3D11on12; public static unsafe partial class Apis { [DllImport("d3d11.dll", ExactSpelling = true)] - public static extern HResult D3D11On12CreateDevice(IUnknown* pDevice, uint Flags, Graphics.Direct3D.FeatureLevel* pFeatureLevels, uint FeatureLevels, IUnknown** ppCommandQueues, uint NumQueues, uint NodeMask, Graphics.Direct3D11.ID3D11Device** ppDevice, Graphics.Direct3D11.ID3D11DeviceContext** ppImmediateContext, Graphics.Direct3D.FeatureLevel* pChosenFeatureLevel); + public static extern HResult D3D11On12CreateDevice(IUnknown* pDevice, D3D11_CREATE_DEVICE_FLAG Flags, Graphics.Direct3D.FeatureLevel* pFeatureLevels, uint FeatureLevels, IUnknown** ppCommandQueues, uint NumQueues, uint NodeMask, Graphics.Direct3D11.ID3D11Device** ppDevice, Graphics.Direct3D11.ID3D11DeviceContext** ppImmediateContext, Graphics.Direct3D.FeatureLevel* pChosenFeatureLevel); } diff --git a/src/Vortice.Win32.Direct3D11on12/Generated/ResourceFlags.cs b/src/Vortice.Win32.Direct3D11on12/Generated/ResourceFlags.cs index 3268ae0..00bf031 100644 --- a/src/Vortice.Win32.Direct3D11on12/Generated/ResourceFlags.cs +++ b/src/Vortice.Win32.Direct3D11on12/Generated/ResourceFlags.cs @@ -14,13 +14,13 @@ namespace Win32.Graphics.Direct3D11on12; public partial struct ResourceFlags { /// - public uint BindFlags; + public D3D11_BIND_FLAG BindFlags; /// - public uint MiscFlags; + public D3D11_RESOURCE_MISC_FLAG MiscFlags; /// - public uint CPUAccessFlags; + public D3D11_CPU_ACCESS_FLAG CPUAccessFlags; /// public uint StructureByteStride; diff --git a/src/Vortice.Win32.Direct3D12/Generated/Apis.cs b/src/Vortice.Win32.Direct3D12/Generated/Apis.cs index da85b95..26f3ccb 100644 --- a/src/Vortice.Win32.Direct3D12/Generated/Apis.cs +++ b/src/Vortice.Win32.Direct3D12/Generated/Apis.cs @@ -1160,6 +1160,5 @@ public static partial class Apis return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); } } - } diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/AffineTransform2DInterpolationMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/AffineTransform2DInterpolationMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/AffineTransform2DInterpolationMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/AffineTransform2DInterpolationMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/AlphaMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/AlphaMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/AlphaMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/AlphaMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/Apis.cs new file mode 100644 index 0000000..ed44d83 --- /dev/null +++ b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/Apis.cs @@ -0,0 +1,15 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace Win32.Graphics.Direct2D.Common; + +public static partial class Apis +{ +} + diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/BezierSegment.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/BezierSegment.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/BezierSegment.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/BezierSegment.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/BlendMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/BlendMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/BlendMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/BlendMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/BorderMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/BorderMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/BorderMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/BorderMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/ColorMatrixAlphaMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/ColorMatrixAlphaMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/ColorMatrixAlphaMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/ColorMatrixAlphaMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/CompositeMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/CompositeMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/CompositeMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/CompositeMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/FigureBegin.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/FigureBegin.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/FigureBegin.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/FigureBegin.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/FigureEnd.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/FigureEnd.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/FigureEnd.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/FigureEnd.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/FillMode.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/FillMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/FillMode.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/FillMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/ID2D1SimplifiedGeometrySink.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/ID2D1SimplifiedGeometrySink.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/ID2D1SimplifiedGeometrySink.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/ID2D1SimplifiedGeometrySink.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/PathSegment.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/PathSegment.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/PathSegment.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/PathSegment.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/PixelFormat.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/PixelFormat.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/PixelFormat.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/PixelFormat.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/RectF.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/RectF.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/RectF.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/RectF.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/RectU.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/RectU.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/RectU.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/RectU.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/TurbulenceNoise.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D.Common/TurbulenceNoise.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct2D/TurbulenceNoise.cs rename to src/Vortice.Win32/Generated/Graphics/Direct2D.Common/TurbulenceNoise.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Direct2D/Apis.cs index 882e856..a061a44 100644 --- a/src/Vortice.Win32/Generated/Graphics/Direct2D/Apis.cs +++ b/src/Vortice.Win32/Generated/Graphics/Direct2D/Apis.cs @@ -1578,6 +1578,5 @@ public static partial class Apis public const uint D2D1_APPEND_ALIGNED_ELEMENT = 4294967295; public const uint FACILITY_D2D = 2201; - } diff --git a/src/Vortice.Win32/Generated/Graphics/Direct2D/Direct2D.xml b/src/Vortice.Win32/Generated/Graphics/Direct2D/Direct2D.xml deleted file mode 100644 index ac3f8d3..0000000 --- a/src/Vortice.Win32/Generated/Graphics/Direct2D/Direct2D.xml +++ /dev/null @@ -1,9514 +0,0 @@ - - - - - Identifiers for properties of the Composite effect. - Microsoft Docs: - - - - The mode used for the effect. - - -Type is D2D1_COMPOSITE_MODE. - -Default value is D2D1_COMPOSITE_MODE_SOURCE_OVER - - - - Specifies how the alpha value of a bitmap or render target should be treated. - Microsoft Docs: - - - - The alpha value might not be meaningful. - - - The alpha value has been premultiplied. Each color is first scaled by the alpha value. The alpha value itself is the same in both straight and premultiplied alpha. Typically, no color channel value is greater than the alpha channel value. If a color channel value in a premultiplied format is greater than the alpha channel, the standard source-over blending math results in an additive blend. - - - The alpha value has not been premultiplied. The alpha channel indicates the transparency of the color. - - - The alpha value is ignored. - - - - Flush all device contexts that reference a given bitmap. - Microsoft Docs: - The bitmap, created on this device, for which all referencing device contexts will be flushed. - - - - - Draws an image to the device context using the specified blend mode. Results are equivalent to using Direct2D's built-in Blend effect. - Microsoft Docs: - The image to be drawn to the device context. - The blend mode to be used. See Blend modes for more info. - The offset in the destination space that the image will be rendered to. - The entire logical extent of the image will be rendered to the corresponding destination. - If not specified, the destination origin will be (0, 0). The top-left corner of the image will be mapped to the target offset. - This will not necessarily be the origin. The default value is NULL. - The corresponding rectangle in the image space will be mapped to the given origins when processing the image. The default value is NULL. - The interpolation mode that will be used to scale the image if necessary. The default value is D2D1_INTERPOLATION_MODE_LINEAR. - - - - - Creates a new ID2D1DeviceContext4 from this Direct2D device. - Microsoft Docs: - The options to be applied to the created device context. - When this method returns, contains a pointer to the new device context. - - - - - Updates the commands array. Existing commands not updated by this method are preserved. The array is resized larger if necessary to accomodate the new commands. - Microsoft Docs: - The commands array. - The number of commands to update. - The index at which to begin updating commands. Must be less than or equal to the size of the commands array. - - - - - Defines how the world transform, dots per inch (dpi), and stroke width affect the shape of the pen used to stroke a primitive. - Microsoft Docs: - - - - The stroke respects the currently set world transform, the dpi, and the stroke width. - - - The stroke does not respect the world transform but it does respect the dpi and stroke width. - - - The stroke is forced to 1 pixel wide (in device space) and does not respect the world transform, the dpi, or the stroke width. - - - - Identifiers for properties of the Exposure effect. - Microsoft Docs: - - - - The D2D1_EXPOSURE_PROP_EXPOSURE_VALUE property is a float value that specifies how much to increase or decrease the exposure of the image. The allowed range is -2.0 to 2.0. The default value is 0.0 (no change). - - - - Sets the render information for the transform. - Microsoft Docs: - The interface supplied to the transform to allow specifying the CPU based transform pass. - - - - - Defines a transform that uses a compute shader. - Microsoft Docs: - - - - - Gets the parent element. - Microsoft Docs: - Outputs the parent element. - - - - - The meetOrSlice portion of the SVG preserveAspectRatio attribute. - Microsoft Docs: - - - - Scale the viewBox up as much as possible such that the entire viewBox is visible within the viewport. - - - Scale the viewBox down as much as possible such that the entire viewport is - covered by the viewBox. - - - - Indicates whether the vertex buffer changes infrequently or frequently. - Microsoft Docs: - - - - The created vertex buffer is updated infrequently. - - - The created vertex buffer is changed frequently. - - - - A description of a single element to the vertex layout. - Microsoft Docs: - - - - The HLSL semantic associated with this element in a shader input-signature. - - - The semantic index for the element. A semantic index modifies a semantic, with an integer index number. A semantic index is only needed in a case where there is more than one element with the same semantic. For example, a 4x4 matrix would have four components each with the semantic name matrix; however, each of the four components would have different semantic indices (0, 1, 2, and 3). - - - The data type of the element data. - - - An integer value that identifies the input-assembler. Valid values are between 0 and 15. - - - The offset in bytes between each element. - - - - Creates an SVG glyph style object. - Microsoft Docs: - On completion points to the created ID2D1SvgGlyphStyle object. - - - - - Fills an opacity mask on the command sink. - Microsoft Docs: - The bitmap whose alpha channel will be sampled to define the opacity mask. - The brush with which to fill the mask. - The destination rectangle in which to fill the mask. If not specified, this is the origin. - The source rectangle within the opacity mask. If not specified, this is the entire mask. - - - - - Gets the length of the text content value. - Microsoft Docs: - - - - - Adds the provided node to the transform graph. - Microsoft Docs: - The node that will be added to the transform graph. - - - - - Indicates the gamma space in which the gradient stops are interpolated. - Microsoft Docs: - - - - - Represents the bit depth of the imaging pipeline in Direct2D. - Microsoft Docs: - - - - The buffer precision is not specified. - - - Use 8-bit normalized integer per channel. - - - Use 8-bit normalized integer standard RGB data per channel. - - - Use 16-bit normalized integer per channel. - - - Use 16-bit floats per channel. - - - Use 32-bit floats per channel. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. - -Do not use this value. - - - - Gets commands from the commands array. - Microsoft Docs: - Buffer to contain the commands. - The element count of the buffer. - The index of the first commands to retrieve. - - - - - The rendering priority affects the extent to which Direct2D will throttle its rendering workload. - Microsoft Docs: - - - - No change in rendering workload priority. - - - The device and its associated device contexts are given a lower priority than others. - - - - Defines a mappable single-dimensional vertex buffer. - Microsoft Docs: - - - - - Specifies the appearance of the ink nib (pen tip) as part of an D2D1_INK_STYLE_PROPERTIES structure. - Microsoft Docs: - - - - The pen tip is circular. - - - The pen tip is square. - - - - Specifies how units in Direct2D will be interpreted. - Microsoft Docs: - - - - Units will be interpreted as device-independent pixels (1/96"). - - - Units will be interpreted as pixels. - - - - Extends the input rectangle to infinity using the specified extend modes. - Microsoft Docs: - - - - - Indicates how pixel shader sampling will be restricted. - Microsoft Docs: - - - - The pixel shader is not restricted in its sampling. - - - The pixel shader samples inputs only at the same scene coordinate as the output pixel and returns transparent black whenever the input pixels are also transparent black. - - - - Specifies the types of properties supported by the Direct2D property interface. - Microsoft Docs: - - - - An unknown property. - - - An arbitrary-length string. - - - A 32-bit integer value constrained to be either 0 or 1. - - - An unsigned 32-bit integer. - - - A signed 32-bit integer. - - - A 32-bit float. - - - Two 32-bit float values. - - - Three 32-bit float values. - - - Four 32-bit float values. - - - An arbitrary number of bytes. - - - A returned COM or nano-COM interface. - - - An enumeration. The value should be treated as a UINT32 with a defined array of fields to specify the bindings to human-readable strings. - - - An enumeration. The value is the count of sub-properties in the array. The set of array elements will be contained in the sub-property. - - - A CLSID. - - - A 3x2 matrix of float values. - - - A 4x2 matrix of float values. - - - A 4x4 matrix of float values. - - - A 5x4 matrix of float values. - - - A nano-COM color context interface pointer. - - - - Draws the formatted text described by the specified IDWriteTextLayout object. - Microsoft Docs: - The point, described in device-independent pixels, at which the upper-left corner of the text described by textLayout is drawn. - The formatted text to draw. Any drawing effects that do not inherit from ID2D1Resource are ignored. If there are drawing effects that inherit from ID2D1Resource that are not brushes, this method fails and the render target is put in an error state. - The brush used to paint any text in textLayout that does not already have a brush associated with it as a drawing effect (specified by the IDWriteTextLayout::SetDrawingEffect method). - A value that indicates whether the text should be snapped to pixel boundaries and whether the text should be clipped to the layout rectangle. The default value is D2D1_DRAW_TEXT_OPTIONS_NONE, which indicates that text should be snapped to pixel boundaries and it should not be clipped to the layout rectangle. - - - - - Removes the attribute from this element. - Microsoft Docs: - The name of the attribute to remove. - - - - - Specifies the flip and rotation at which an image appears. - Microsoft Docs: - - - - The orientation is unchanged. - - - The image is flipped horizontally. - - - The image is rotated clockwise 180 degrees. - - - The image is rotated clockwise 180 degrees, then flipped horizontally. - - - The image is rotated clockwise 90 degrees, then flipped horizontally. - - - The image is rotated clockwise 270 degrees. - - - The image is rotated clockwise 270 degrees, then flipped horizontally. - - - The image is rotated clockwise 90 degrees. - - - - Describes the render information common to all of the various transform implementations. - Microsoft Docs: - - - - - Renders to an intermediate texture created by the CreateCompatibleRenderTarget method. - Microsoft Docs: - - - - - Identifiers for the properties of the Color management effect. - Microsoft Docs: - - - - The source color space information. - - -The type is ID2D1ColorContext. - -The default value is NULL. - - - Which ICC rendering intent to use. - - -The type is D2D1_COLORMANAGEMENT_RENDERING_INTENT. - -The default value is D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. - - - The destination color space information. - - -The type is ID2D1ColorContext. - -The default value is NULL. - - - Which ICC rendering intent to use. - - -The type is D2D1_COLORMANAGEMENT_RENDERING_INTENT. - -The default value is D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. - - - How to interpret alpha data that is contained in the input image. - - -The type is D2D1_COLORMANAGEMENT_ALPHA_MODE. - -The default value is D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED. - - - The quality level of the transform. - - -The type is D2D1_COLORMANAGEMENT_QUALITY. - -The default value is D2D1_COLORMANAGEMENT_QUALITY_NORMAL. - - - - Describes the shape at the end of a line or segment. - Microsoft Docs: - - - - A cap that does not extend past the last point of the line. Comparable to cap used for objects other than lines. - - - Half of a square that has a length equal to the line thickness. - - - A semicircle that has a diameter equal to the line thickness. - - - An isosceles right triangle whose hypotenuse is equal in length to the thickness of the line. - - - - Gets the current antialiasing mode for text and glyph drawing operations. - Microsoft Docs: - - - - - Changes the primitive blend mode that is used for all rendering operations in the device context. - Microsoft Docs: - The primitive blend to use. - - - - - Creates a color context from a color space. - Microsoft Docs: - The space of color context to create. - A buffer containing the ICC profile bytes used to initialize the color context when space is D2D1_COLOR_SPACE_CUSTOM. For other types, the parameter is ignored and should be set to NULL. - The size in bytes of Profile. - When this method returns, contains the address of a pointer to a new color context object. - - - - - Gets the mode that is being used to interpret values by the device context. - Microsoft Docs: - - - - - Creates Direct2D resources. - Microsoft Docs: - - - - - Serializes an element and its subtree to XML. The output XML is encoded as UTF-8. - Microsoft Docs: - An output stream to contain the SVG XML subtree. - The root of the subtree. If null, the entire document is serialized. - - - - - Retrieves the properties specified when the transformed image source was created. - Microsoft Docs: - the properties specified when the transformed image source was created. - - - - - Connects two nodes inside the transform graph. - Microsoft Docs: - The node from which the connection will be made. - The node to which the connection will be made. - The node input that will be connected. - - - - - Returns the element on which this attribute is set. Returns null if the attribute is not set on any element. - Microsoft Docs: - When this method completes, this will contain a pointer to the element on which this attribute is set. - - - - - Gets data from the segment data array. - Microsoft Docs: - Buffer to contain the segment data array. - The element count of the buffer. - The index of the first segment data to retrieve. - - - - - Represents a single group of sprites with their associated drawing properties. - Microsoft Docs: - - - - - Allows a caller to control the channel depth of a stage in the rendering pipeline. - Microsoft Docs: - - - - The channel depth is the default. It is inherited from the inputs. - - - The channel depth is 1. - - - The channel depth is 4. - - - - Gets the next sibling of the referenceChild element. - Microsoft Docs: - The referenceChild must be an immediate child of this element. - The output nextChild element will be non-null if the referenceChild has a next sibling. If the referenceChild is the last child, the output is null. - - - - - Performs the inverse mapping to MapOutputRectToInputRects. - Microsoft Docs: - An array of input rectangles to be mapped to the output rectangle. The inputRects parameter is always equal to the input bounds. - An array of input rectangles to be mapped to the opaque output rectangle. - The number of inputs specified. The implementation guarantees that this is equal to the number of inputs specified on the transform. - The output rectangle that maps to the corresponding input rectangle. - The output rectangle that maps to the corresponding opaque input rectangle. - - - - - Retrieves the device context associated with this render target. - Microsoft Docs: - A value that specifies whether the device context should be cleared. - When this method returns, contains the device context associated with this render target. You must allocate storage for this parameter. - - - - - Inserts newChild as a child of this element, before the referenceChild element. - Microsoft Docs: - The element to be inserted. - The element that the child should be inserted before. - If referenceChild is null, the newChild is placed as the last child. - If referenceChild is non-null, it must be an immediate child of this element. - - - - - Sets the element id which acts as the paint server. This id is used if the paint type is D2D1_SVG_PAINT_TYPE_URI. - Microsoft Docs: - The element id which acts as the paint server. This id is used if the paint type is D2D1_SVG_PAINT_TYPE_URI. - - - - - Retrieves the starting coordinates of the linear gradient. - Microsoft Docs: - - - - - The interpolation mode the 3D transform effect uses on the image. There are 5 scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - - Leaves the Direct2D API critical section, if it exists. - Microsoft Docs: - - - - - The ID2D1PathGeometry1 interface adds functionality to ID2D1PathGeometry. In particular, it provides the path geometry-specific ComputePointAndSegmentAtLength method. - Microsoft Docs: - - - - - Identifiers for properties of the YCbCr effect. - Microsoft Docs: - - - - Specifies the chroma subsampling of the input chroma image. - - -The type is D2D1_YCBCR_CHROMA_SUBSAMPLING. - -The default value is D2D1_YCBCR_CHROMA_SUBSAMPLING_AUTO. - - - A 3x2 Matrix specifying the axis-aligned affine transform of the image. Axis aligned transforms include Scale, Flips, and 90 degree rotations. - - -The type is D2D1_MATRIX_3X2_F. - -The default value is Matrix3x2F::Identity(). - - - The interpolation mode. - - -The type is D2D1_YCBCR_INTERPOLATION_MODE. - - - - Gets the blend description of the corresponding blend transform object. - Microsoft Docs: - When this method returns, contains the blend description specified for the blend transform. - - - - - Gets the color space after interpolation has occurred. - Microsoft Docs: - - - - - Represents a geometry resource and defines a set of helper methods for manipulating and measuring geometric shapes. Interfaces that inherit from ID2D1Geometry define specific shapes. - Microsoft Docs: - - - - - Gets the rectangle that will be used as the bounds of the image when drawn as an image brush. - Microsoft Docs: - When this method returns, contains the address of the output source rectangle. - - - - - Registers an effect within the factory instance with the property XML specified as a stream. - Microsoft Docs: - The identifier of the effect to be registered. - A list of the effect properties, types, and metadata. - An array of properties and methods. - -This binds a property by name to a particular method implemented by the effect author to handle the property. - The name must be found in the corresponding propertyXml. - The number of bindings in the binding array. - The static factory that is used to create the corresponding effect. - - - - - Sets a single transform node as being equivalent to the whole graph. - Microsoft Docs: - The node to be set. - - - - - Identifiers for properties of the Flood effect. - Microsoft Docs: - - - - The color and opacity of the bitmap. This property is a D2D1_VECTOR_4F. The individual values for each channel are of type FLOAT, unbounded and unitless. - The effect doesn't modify the values for the channels. - - -The RGBA values for each channel range from 0 to 1. - -The type is D2D1_VECTOR_4F. - -The default value is {0.0f, 0.0f, 0.0f, 1.0f}. - - - - Uses the specified input as the effect output. - Microsoft Docs: - The index of the input to the effect. - - - - - Gets the number of top-level properties. - Microsoft Docs: - - - - - Return the render target's dots per inch (DPI). - Microsoft Docs: - When this method returns, contains the horizontal DPI of the render target. This parameter is passed uninitialized. - When this method returns, contains the vertical DPI of the render target. This parameter is passed uninitialized. - - - - - Interface describing an SVG stroke-dasharray value. - Microsoft Docs: - - - - - Pushes a layer onto the clip and layer stack. - Microsoft Docs: - The parameters that define the layer. - The layer resource that receives subsequent drawing operations. - - - - - Unregisters an effect within the factory instance that corresponds to the classId provided. - Microsoft Docs: - The identifier of the effect to be unregistered. - - - - - Determines what gamma is used for interpolation and blending. - Microsoft Docs: - - - - Colors are manipulated in 2.2 gamma color space. - - - Colors are manipulated in 1.0 gamma color space. - - - Colors are manipulated in ST.2084 PQ gamma color space. - - - - This sets the output bounds for the support transform. - Microsoft Docs: - The output bounds. - - - - - Retrieves the type of shape used at the beginning of a stroke. - Microsoft Docs: - - - - - A locking mechanism from a Direct2D factory that Direct2D uses to control exclusive resource access in an app that is uses multiple threads. - Microsoft Docs: - - - - - Gets the number of invalid output rectangles that have accumulated on the effect. - Microsoft Docs: - The effect to count the invalid rectangles on. - The returned rectangle count. - - - - - Creates a render target that draws to a Windows Graphics Device Interface (GDI) device context. - Microsoft Docs: - The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. To enable the device context (DC) render target to work with GDI, set the DXGI format to DXGI_FORMAT_B8G8R8A8_UNORM and the alpha mode to D2D1_ALPHA_MODE_PREMULTIPLIED or D2D1_ALPHA_MODE_IGNORE. For more information about pixel formats, see Supported Pixel Formats and Alpha Modes. - When this method returns, dcRenderTarget contains the address of the pointer to the ID2D1DCRenderTarget created by the method. - - - - - Removes dashes from the end of the array. - Microsoft Docs: - Specifies how many dashes to remove. - - - - - Specifies which way a color profile is defined. - Microsoft Docs: - - - - - Draws a line between the specified points using the specified stroke style. - Microsoft Docs: - The start point of the line, in device-independent pixels. - The end point of the line, in device-independent pixels. - The brush used to paint the line's stroke. - The width of the stroke, in device-independent pixels. The value must be greater than or equal to 0.0f. If this parameter isn't specified, it defaults to 1.0f. The stroke is centered on the line. - The style of stroke to paint, or NULL to paint a solid line. - - - - - Sets the maximum amount of texture memory Direct2D accumulates before it purges the image caches and cached texture allocations. - Microsoft Docs: - - - - - Retrieves the geometries in the geometry group. - Microsoft Docs: - When this method returns, contains the address of a pointer to an array of geometries to be filled by this method. The length of the array is specified by the geometryCount parameter. If the array is NULL, then this method performs no operation. You must allocate the memory for this array. - A value indicating the number of geometries to return in the geometries array. If this value is less than the number of geometries in the geometry group, the remaining geometries are omitted. If this value is larger than the number of geometries in the geometry group, the extra geometries are set to NULL. To obtain the number of geometries currently in the geometry group, use the GetSourceGeometryCount method. - - - - - Specifies the text-rendering configuration of the drawing state. - Microsoft Docs: - The text-rendering configuration of the drawing state, or NULL to use default settings. - - - - - Computes the maximum factor by which a given transform can stretch any vector. - Microsoft Docs: - The input transform matrix. - - - - - Gets the extend mode of the image brush on the x-axis. - Microsoft Docs: - - - - - A support transform for effects to modify the output rectangle of the previous effect or bitmap. - Microsoft Docs: - - - - - Creates a points object which can be used to set a points attribute on a polygon or polyline element. - Microsoft Docs: - The points in the point collection. - The number of points in the points argument. - The created ID2D1SvgPointCollection object. - - - - - Identifiers for properties of the Straighten effect. - Microsoft Docs: - - - - The D2D1_STRAIGHTEN_PROP_ANGLE property is a float value that specifies how much the image should be rotated. The allowed range is -45.0 to 45.0. The default value is 0.0. - - - The D2D1_STRAIGHTEN_PROP_MAINTAIN_SIZE property is a boolean value that specifies whether the image will be scaled such that the original size is maintained without any invalid regions. - The default value is True. - - - The D2D1_STRAIGHTEN_PROP_SCALE_MODE property is a D2D1_STRAIGHTEN_SCALE_MODE enumeration value indicating the scaling mode that should be used. - - - - Creates a ID2D1Device object. - Microsoft Docs: - The IDXGIDevice object used when creating the ID2D1Device. - The requested ID2D1Device object. - - - - - Describes the options that transforms may set on input textures. - Microsoft Docs: - - - - The type of filter to apply to the input texture. - - - The mip level to retrieve from the upstream transform, if specified. - - - - Creates an ID2D1Device2 object. - Microsoft Docs: - The IDXGIDevice object used when creating the ID2D1Device2. - The requested ID2D1Device2 object. - - - - - Represents a brush based on an ID2D1Image. - Microsoft Docs: - - - - - Simple description of a color space. - Microsoft Docs: - - - - The XY coordinates of the red primary in CIEXYZ space. - - - The XY coordinates of the green primary in CIEXYZ space. - - - The XY coordinates of the blue primary in CIEXYZ space. - - - The X/Z tristimulus values for the whitepoint, normalized for relative luminance. - - - The gamma encoding to use for this color space. - - - - Provides access to metafile records, including their type, data, and flags. - Microsoft Docs: - The type of metafile record being processed. Please see MS-EMF and MS-EMFPLUS for a list of record types. - The data contained in this record. Please see MS-EMF and MS-EMFPLUS for information on record data layouts. - TThe size of the data pointed to by recordData. - The set of flags set for this record. Please see MS-EMF and MS-EMFPLUS for information on record flags. - - - - - Retrieves the number of entries in the dashes array. - Microsoft Docs: - - - - - Gets the precision of the gradient buffer. - Microsoft Docs: - - - - - Defines capabilities of the underlying Direct3D device which may be queried using ID2D1EffectContext::CheckFeatureSupport. - Microsoft Docs: - - - - A D2D1_FEATURE_DATA_DOUBLES structure should be filled. - - - A D2D1_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS structure should be filled. - - - - Defines a vertex shader and the input element description to define the input layout. - Microsoft Docs: - - - - A pointer to the buffer. - - - The size of the buffer. - - - An array of input assembler stage data types. - - - The number of input elements in the vertex shader. - - - The vertex stride. - - - - Contains rendering options (hardware or software), pixel format, DPI information, remoting options, and Direct3D support requirements for a render target. - Microsoft Docs: - - - - A value that specifies whether the render target should force hardware or software rendering. A value of D2D1_RENDER_TARGET_TYPE_DEFAULT specifies that the render target should use hardware rendering if it is available; otherwise, it uses software rendering. Note that WIC bitmap render targets do not support hardware rendering. - - - The pixel format and alpha mode of the render target. You can use the D2D1::PixelFormat function to create a pixel format that specifies that Direct2D should select the pixel format and alpha mode for you. For a list of pixel formats and alpha modes supported by each render target, see Supported Pixel Formats and Alpha Modes. - - - The horizontal DPI of the render target. To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. - - - The vertical DPI of the render target. To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. - - - A value that specifies how the render target is remoted and whether it should be GDI-compatible. Set to D2D1_RENDER_TARGET_USAGE_NONE to create a render target that is not compatible with GDI and uses Direct3D command-stream remoting if it is available. - - - A value that specifies the minimum Direct3D feature level required for hardware rendering. If the specified minimum level is not available, the render target uses software rendering if the type member is set to D2D1_RENDER_TARGET_TYPE_DEFAULT; if type is set to to D2D1_RENDER_TARGET_TYPE_HARDWARE, render target creation fails. A value of D2D1_FEATURE_LEVEL_DEFAULT indicates that Direct2D should determine whether the Direct3D feature level of the device is adequate. This field is used only when creating ID2D1HwndRenderTarget and ID2D1DCRenderTarget objects. - - - - Creates an ID2D1Device4 object. - Microsoft Docs: - The IDXGIDevice object used when creating the ID2D1Device4. - The requested ID2D1Device4 object. - - - - - Retrieves the number of gradient stops in the collection. - Microsoft Docs: - - - - - Specifies whether Direct2D provides synchronization for an ID2D1Factory and the resources it creates, so that they may be safely accessed from multiple threads. - Microsoft Docs: - - - - No synchronization is provided for accessing or writing to the factory or the objects it creates. If the factory or the objects are called from multiple threads, it is up to the application to provide access locking. - - - Direct2D provides synchronization for accessing and writing to the factory and the objects it creates, enabling safe access from multiple threads. - - - - Gets the DPI reported by the metafile. - Microsoft Docs: - Receives the horizontal DPI reported by the metafile. - Receives the vertical DPI reported by the metafile. - - - - - Indicates to the command sink a geometry to be filled. - Microsoft Docs: - The geometry that should be filled. - The primary brush used to fill the geometry. - A brush whose alpha channel is used to modify the opacity of the primary fill brush. - - - - - Gets the SVG element with the specified ID. - Microsoft Docs: - ID of the element to retrieve. - The element matching the specified ID. If the element cannot be found, the returned element will be null. - - - - - Specifies text rendering options to be applied to all subsequent text and glyph drawing operations. - Microsoft Docs: - The text rendering options to be applied to all subsequent text and glyph drawing operations; NULL to clear current text rendering options. - - - - - Retrieves the properties of an effect. - Microsoft Docs: - The ID of the effect to retrieve properties from. - When this method returns, contains the address of a pointer to the property interface that can be used to query the metadata of the effect. - - - - - Appends an element to the list of children. - Microsoft Docs: - The element to append. - - - - - Draws the transform to the graphics processing unit (GPU)–based Direct2D pipeline. - Microsoft Docs: - The target to which the transform should be written. - The area within the source from which the image should be drawn. - The origin within the target bitmap to which the source data should be drawn. - - - - - The optimization mode for the Gaussian blur effect. - Microsoft Docs: - - - - Applies internal optimizations such as pre-scaling at relatively small radii. Uses linear filtering. - - - Uses the same optimization thresholds as Speed mode, but uses trilinear filtering. - - - Only uses internal optimizations with large blur radii, where approximations are less likely to be visible. Uses trilinear filtering. - - - - 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. - Microsoft Docs: - Precision of the input lookup table data. - Number of lookup table elements per dimension (X, Y, Z). - Buffer holding the lookup table data. - Size of the lookup table data buffer. - An array containing two values. The first value is the size in bytes from one row (X dimension) of LUT data to the next. - The second value is the size in bytes from one LUT data plane (X and Y dimensions) to the next. - Receives the new lookup table instance. - - - - - Sets the constant buffer for this transform's vertex shader. - Microsoft Docs: - The data applied to the constant buffer - The number of bytes of data in the constant buffer. - - - - - Identifiers for properties of the Saturation effect. - Microsoft Docs: - - - - The saturation of the image. You can set the saturation to a value between 0 and 1. If you set it to 1 the output image is fully saturated. - If you set it to 0 the output image is monochrome. The saturation value is unitless. - - -The type is FLOAT. - -The default is 0.5f. - - - - Interface describing SVG path data. Path data can be set as the 'd' attribute on a 'path' element. - Microsoft Docs: - - - - - Draws a metafile to the command sink using the given source and destination rectangles. - Microsoft Docs: - The metafile to draw. - The rectangle in the target where the metafile will be drawn, relative to the upper left corner (defined in DIPs). If NULL is specified, the destination rectangle is the size of the target. - The rectangle of the source metafile that will be drawn, relative to the upper left corner (defined in DIPs). - If NULL is specified, the source rectangle is the value returned by ID2D1GdiMetafile1::GetSourceBounds. - - - - - Gets the paint color that is used if the paint type is D2D1_SVG_PAINT_TYPE_COLOR. - Microsoft Docs: - The paint color that is used if the paint type is D2D1_SVG_PAINT_TYPE_COLOR. - - - - - Creates an ID2D1GeometryGroup, which is an object that holds other geometries. - Microsoft Docs: - A value that specifies the rule that a composite shape uses to determine whether a given point is part of the geometry. - An array containing the geometry objects to add to the geometry group. The number of elements in this array is indicated by the geometriesCount parameter. - The number of elements in geometries. - When this method returns, contains the address of a pointer to the geometry group created by this method. - - - - - Sets the source rectangle in the image brush. - Microsoft Docs: - The source rectangle that defines the portion of the image to tile. - - - - - Gets either the surface that was specified when the bitmap was created, or the default surface created when the bitmap was created. - Microsoft Docs: - The underlying DXGI surface for the bitmap. - - - - - Sets how the content inside the source rectangle in the image brush will be extended on the x-axis. - Microsoft Docs: - The extend mode on the x-axis of the image. - - - - - Option flags controlling primary conversion performed by CreateImageSourceFromDxgi, if any. - Microsoft Docs: - - - - No primary conversion is performed. - - - Low quality primary conversion is performed. - - - - Identifiers for the properties of the 3D Lookup Table effect. - Microsoft Docs: - - - - The D2D1_LOOKUPTABLE3D_PROP_LUT property is a pointer to an ID2D1LookupTable3D object. The default value is null. - - - The D2D1_LOOKUPTABLE3D_PROP_ALPHA_MODE property is a D2D1_ALPHA_MODE value indicating the alpha mode of the input file. - See the About Alpha Modes section of the Supported Pixel Formats and Alpha Modes topic for additional information. - - - - Option flags for transformed image sources. - Microsoft Docs: - - - - No option flags. - - - Prevents the image source from being automatically scaled (by a ratio of the context DPI divided by 96) while drawn. - - - - Represents a color context that can be used with an ID2D1Bitmap1 object. - Microsoft Docs: - - - - - The interpolation mode the Spot-specular lighting effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Gets the size of the segment data array. - Microsoft Docs: - - - - - Retrieves the render target's current text rendering options. - Microsoft Docs: - When this method returns, textRenderingParamscontains the address of a pointer to the render target's current text rendering options. - - - - - Enters the Direct2D API critical section, if it exists. - Microsoft Docs: - - - - - This interface performs all the same functions as the existing ID2D1CommandSink interface. It also enables access to the new primitive blend modes, MIN and ADD, through its SetPrimitiveBlend1 method. - Microsoft Docs: - - - - - Specifies which ICC rendering intent the Color management effect should use. - Microsoft Docs: - - - - The effect compresses or expands the full color gamut of the image to fill the color gamut of the device, - so that gray balance is preserved but colorimetric accuracy may not be preserved. - - - The effect preserves the chroma of colors in the image at the possible expense of hue and lightness. - - - The effect adjusts colors that fall outside the range of colors the output device renders to the closest color available. It does not preserve the white point. - - - The effect adjusts any colors that fall outside the range that the output device can render to the closest color that can be rendered. The effect does not change the other colors and preserves the white point. - - - - Describes how one geometry object is spatially related to another geometry object. - Microsoft Docs: - - - - The relationship between the two geometries cannot be determined. This value is never returned by any D2D method. - - - The two geometries do not intersect at all. - - - The instance geometry is entirely contained by the passed-in geometry. - - - The instance geometry entirely contains the passed-in geometry. - - - The two geometries overlap but neither completely contains the other. - - - - Converts Direct2D primitives in the passed-in command list into a fixed page representation for use by the print subsystem. - Microsoft Docs: - The command list that contains the rendering operations. - The size of the page to add. - The print ticket stream. - Contains the first label for subsequent drawing operations. This parameter is passed uninitialized. If NULL is specified, no value is retrieved for this parameter. - Contains the second label for subsequent drawing operations. This parameter is passed uninitialized. If NULL is specified, no value is retrieved for this parameter. - - - - - Returns the number of inputs to the transform graph. - Microsoft Docs: - - - - - This interface performs all the same functions as the ID2D1DeviceContext2 interface, plus it enables functionality for creating and drawing sprite batches. - Microsoft Docs: - - - - - Gets the label for subsequent drawing operations. - Microsoft Docs: - When this method returns, contains the first label for subsequent drawing operations. This parameter is passed uninitialized. If NULL is specified, no value is retrieved for this parameter. - When this method returns, contains the second label for subsequent drawing operations. This parameter is passed uninitialized. If NULL is specified, no value is retrieved for this parameter. - - - - - Creates a new ID2D1GdiMetafile object that you can use to replay metafile content. - Microsoft Docs: - A stream object that has the metafile data. - The address of the newly created GDI metafile object. - - - - - Creates a color context. - Microsoft Docs: - The space of color context to create. - A buffer containing the ICC profile bytes used to initialize the color context when space is D2D1_COLOR_SPACE_CUSTOM. For other types, the parameter is ignored and should be set to NULL. - The size in bytes of Profile. - When this method returns, contains the address of a pointer to a new color context object. - - - - - The mode for the Morphology effect. - Microsoft Docs: - - - - The maximum value from each RGB channel in the kernel is used. - - - The minimum value from each RGB channel in the kernel is used. - - - - Sets the constant buffer for this transform's pixel shader. - Microsoft Docs: - The data applied to the constant buffer. - The number of bytes of data in the constant buffer - - - - - Gets the size of the commands array. - Microsoft Docs: - - - - - Returns a boolean indicating whether this element has children. - Microsoft Docs: - - - - - Describes the support for doubles in shaders. - Microsoft Docs: - - - - TRUE is doubles are supported within the shaders. - - - - Supplies the analysis data to an analysis transform. - Microsoft Docs: - The data that the transform will analyze. - The size of the analysis data. - - - - - Sets the maximum capacity of the color glyph cache. - Microsoft Docs: - The maximum capacity of the color glyph cache. - - - - - The interpolation mode to be used with the 2D affine transform effect to scale the image. There are 6 scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Retrieves the number of figures in the path geometry. - Microsoft Docs: - A pointer that receives the number of figures in the path geometry when this method returns. You must allocate storage for this parameter. - - - - - Returns the currently set primitive blend used by the device context. - Microsoft Docs: - - - - - Specifies the center of the gradient ellipse in the brush's coordinate space. - Microsoft Docs: - The center of the gradient ellipse, in the brush's coordinate space. - - - - - The turbulence noise mode for the Turbulence effect. Indicates whether to generate a bitmap based on Fractal Noise or the Turbulence function. - Microsoft Docs: - - - - Computes a sum of the octaves, shifting the output range from [-1, 1], to [0, 1]. - - - Computes a sum of the absolute value of each octave. - - - - Identifiers for properties of the Gaussian blur effect. - Microsoft Docs: - - - - The amount of blur to be applied to the image. You can compute the blur radius of the kernel by multiplying the standard deviation by 3. - The units of both the standard deviation and blur radius are DIPs. A value of zero DIPs disables this effect entirely. - - -The type is FLOAT. - -The default value is 3.0f. - - - The optimization mode. - - -The type is D2D1_GAUSSIANBLUR_OPTIMIZATION. - -The default value is D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED. - - - The mode used to calculate the border of the image, soft or hard. - - -The type is D2D1_GAUSSIANBLUR_OPTIMIZATION. - -The default value is D2D1_BORDER_MODE_SOFT. - - - - Defines the coordinate system used for SVG gradient or clipPath elements. - Microsoft Docs: - - - - The property is set to SVG's 'userSpaceOnUse' value. - - - The property is set to SVG's 'objectBoundingBox' value. - - - - Identifiers for properties of the Blend effect. - Microsoft Docs: - - - - The blend mode used for the effect. - - -The type is D2D1_BLEND_MODE. - -The default value is D2D1_BLEND_MODE_MULTIPLY. - - - - Gets the string length of the name of the specified attribute at the given index. - Microsoft Docs: - The index of the attribute. - Outputs the string length of the name of the specified attribute. - Indicates whether the attribute is set to the inherit value. - - - - - Creates Direct2D resources. - Microsoft Docs: - - - - - Describes the stroke that outlines a shape. - Microsoft Docs: - - - - The cap applied to the start of all the open figures in a stroked geometry. - - - The cap applied to the end of all the open figures in a stroked geometry. - - - The shape at either end of each dash segment. - - - A value that describes how segments are joined. This value is ignored for a vertex if the segment flags specify that the segment should have a smooth join. - - - The limit of the thickness of the join on a mitered corner. This value is always treated as though it is greater than or equal to 1.0f. - - - A value that specifies whether the stroke has a dash pattern and, if so, the dash style. - - - A value that specifies an offset in the dash sequence. A positive dash offset value shifts the dash pattern, in units of stroke width, toward the start of the stroked geometry. A negative dash offset value shifts the dash pattern, in units of stroke width, toward the end of the stroked geometry. - - - - Creates a sequence of lines using the specified points and adds them to the geometry sink. - Microsoft Docs: - A pointer to an array of one or more points that describe the lines to draw. A line is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by BeginFigure) to the first point in the array. if the array contains additional points, a line is drawn from the first point to the second point in the array, from the second point to the third point, and so on. - The number of points in the points array. - - - - - Removes the oldChild from the tree. Children of oldChild remain children of oldChild. - Microsoft Docs: - The child element to be removed. The oldChild element must be an immediate child of this element. - - - - - Implementation of a drawing state block that adds the functionality of primitive blend in addition to already existing antialias mode, transform, tags and text rendering mode. - Microsoft Docs: - - - - - Specifies that the output of the transform in which the render information is encapsulated is or is not cached. - Microsoft Docs: - TRUE if the output of the transform is cached; otherwise, FALSE. - - - - - Identifiers for properties of the Border effect. - Microsoft Docs: - - - - The edge mode in the X direction for the effect. You can set this to clamp, wrap, or mirror. - - -The type is D2D1_BORDER_EDGE_MODE. - -The default value is D2D1_BORDER_EDGE_MODE_CLAMP. - - - The edge mode in the Y direction for the effect. You can set this to clamp, wrap, or mirror. - - -The type is D2D1_BORDER_EDGE_MODE. - -The default value is D2D1_BORDER_EDGE_MODE_CLAMP. - - - - Represents a cubic bezier segment drawn between two points. - Microsoft Docs: - - - - The first control point for the Bezier segment. - - - The second control point for the Bezier segment. - - - The end point for the Bezier segment. - - - - Draws a color bitmap glyph run using one of the bitmap formats. - Microsoft Docs: - Specifies the format of the glyph image. Supported formats are DWRITE_GLYPH_IMAGE_FORMATS_PNG, DWRITE_GLYPH_IMAGE_FORMATS_JPEG, - DWRITE_GLYPH_IMAGE_FORMATS_TIFF, or DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8. This method will result in an error if the color glyph run does not contain the requested format. - - -Only one format can be specified at a time, combinations of flags are not valid input. - The origin of the baseline for the glyph run. - The glyphs to render. - Indicates the measuring method. - Specifies the pixel snapping policy when rendering color bitmap glyphs. - - - - - Defines how to interpolate between colors. - Microsoft Docs: - - - - Colors are interpolated with straight alpha. - - - Colors are interpolated with premultiplied alpha. - - - - Retrieves the limit on the ratio of the miter length to half the stroke's thickness. - Microsoft Docs: - - - - - Creates Direct2D resources. This interface also enables the creation of ID2D1Device5 objects. - Microsoft Docs: - - - - - Retrieves the text-rendering configuration of the drawing state. - Microsoft Docs: - When this method returns, contains the address of a pointer to an IDWriteRenderingParams object that describes the text-rendering configuration of the drawing state. - - - - - Gets the rendering controls that have been applied to the context. - Microsoft Docs: - When this method returns, contains a pointer to the rendering controls for this context. - - - - - This interface performs all the same functions as the existing ID2D1DeviceContext5 interface, plus it enables access to the BlendImage method. - Microsoft Docs: - - - - - Gets the number of points in the array. - Microsoft Docs: - - - - - Represents a set of state and command buffers that are used to render to a target. - Microsoft Docs: - - - - - Gets the string length of the tag name. - Microsoft Docs: - - - - - Gets the bitmap source that this brush uses to paint. - Microsoft Docs: - When this method returns, contains the address to a pointer to the bitmap with which this brush paints. - - - - - Returns the size of the initial viewport. - Microsoft Docs: - - - - - Gets the size of the color profile associated with the bitmap. - Microsoft Docs: - - - - - Represents a bitmap that can be used as a surface for an ID2D1DeviceContext or mapped into system memory, and can contain additional color context information. - Microsoft Docs: - - - - - Retrieve the bounds of the geometry, with an optional applied transform. - Microsoft Docs: - The ink style to be used in determining the bounds of this ink object. - The world transform to be used in determining the bounds of this ink object. - When this method returns, contains the bounds of this ink object. - - - - - Retrieves the center of the gradient ellipse. - Microsoft Docs: - - - - - Return the dots per inch (DPI) of the bitmap. - Microsoft Docs: - The horizontal DPI of the image. You must allocate storage for this parameter. - The vertical DPI of the image. You must allocate storage for this parameter. - - - - - Sets the root element of the document. - Microsoft Docs: - The new root element of the document. - - - - - Describes the drawing state of a device context. - Microsoft Docs: - - - - The antialiasing mode for subsequent nontext drawing operations. - - - The antialiasing mode for subsequent text and glyph drawing operations. - - - A label for subsequent drawing operations. - - - A label for subsequent drawing operations. - - - The transformation to apply to subsequent drawing operations. - - - The blend mode for the device context to apply to subsequent drawing operations. - - - D2D1_UNIT_MODE - - - - Creates a path data object which can be used to set a 'd' attribute on a 'path' element. - Microsoft Docs: - An array of segment data. - Number of items in segmentData. - An array of path commands. - The number of items in commands. - When this method completes, this points to the created path data. - - - - - The interpolation mode used to scale the image in the Bitmap source effect. - Microsoft Docs: - - - - Samples the nearest single point and uses that. Doesn't generate a mipmap. - - - Uses a four point sample and linear interpolation. Doesn't generate a mipmap. - - - Uses a 16 sample cubic kernel for interpolation. Doesn't generate a mipmap. - - - Uses the WIC fant interpolation, the same as the IWICBitmapScaler interface. Doesn't generate a mipmap. - - - Generates mipmap chain in system memory using bilinear interpolation. For each mipmap the effect scales to the nearest multiple of 0.5 using bilinear interpolation - and then scales the remaining amount using linear interpolation. - - - - Creates a color context from a DXGI color space type. It is only valid to use this with the Color Management Effect in 'Best' mode. - Microsoft Docs: - The color space to create the color context from. - The created color context. - - - - - Retrieves the matrix used to transform the ID2D1TransformedGeometry object's source geometry. - Microsoft Docs: - A pointer that receives the matrix used to transform the ID2D1TransformedGeometry object's source geometry. You must allocate storage for this parameter. - - - - - Sets how a specific input to the transform should be handled by the renderer in terms of sampling. - Microsoft Docs: - The index of the input that will have the input description applied. - The description of the input to be applied to the transform. - - - - - Removes a layer from the layer and clip stack. - Microsoft Docs: - - - - - Notifies the implementation of the command sink that drawing is about to commence. - Microsoft Docs: - - - - - Returns a boolean indicating if the attribute is explicitly set on the element. - Microsoft Docs: - The name of the attribute. - Outputs whether the attribute is set to the inherit value. - - - - - Identifiers for properties of the Table transfer effect. - Microsoft Docs: - - - - The list of values used to define the transfer function for the Red channel. - - -The type is FLOAT[]. - -The default is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Red channel. - If you set this to FALSE it applies the RedTableTransfer function to the Red channel. - - -The type is BOOL. - -The default is FALSE. - - - The list of values used to define the transfer function for the Green channel. - - -The type is FLOAT[]. - -The default is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Green channel. - If you set this to FALSE it applies the GreenTableTransfer function to the Green channel. - - -The type is BOOL. - -The default is FALSE. - - - The list of values used to define the transfer function for the Blue channel. - - -The type is FLOAT[]. - -The default is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Blue channel. - If you set this to FALSE it applies the BlueTableTransfer function to the Blue channel. - - -The type is BOOL. - -The default is FALSE. - - - The list of values used to define the transfer function for the Alpha channel. - - -The type is FLOAT[]. - -The default is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Alpha channel. - If you set this to FALSE it applies the AlphaTableTransfer function to the Alpha channel. - - -The type is BOOL. - -The default is FALSE. - - - Whether the effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. The effect clamps the values before it premultiplies the alpha. - - -If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, - but other effects and the output surface may clamp the values if they are not of high enough precision. - -The type is BOOL. - -The default is FALSE. - - - - Represents an SVG viewBox. - Microsoft Docs: - - - - X coordinate of the view box. - - - Y coordinate of the view box. - - - Width of the view box. - - - Height of the view box. - - - - Updates the properties of the specified sprites in this sprite batch. - Microsoft Docs: - The index of the first sprite in this sprite batch to update. - The number of sprites to update with new properties. This determines how many strides into each given array Direct2D will read. - A pointer to an array containing the destination rectangles specifying where to draw the sprites on the destination device context. - A pointer to an array containing the source rectangles specifying the regions of the source bitmap to draw as sprites. - - - -Direct2D will use the entire source bitmap for sprites that are assigned a null value or the InfiniteRectU. - If this parameter is omitted entirely or set to a null value, then Direct2D will use the entire source bitmap for all the updated sprites. - A pointer to an array containing the colors to apply to each sprite. The output color is the result of component-wise multiplication of the source bitmap color and the provided color. - The output color is not clamped. - - - -Direct2D will not change the color of sprites that are assigned a null value. If this parameter is omitted entirely or set to a null value, - then Direct2D will not change the color of any of the updated sprites. - A pointer to an array containing the transforms to apply to each sprite’s destination rectangle. - - - -Direct2D will not transform the destination rectangle of any sprites that are assigned a null value. - If this parameter is omitted entirely or set to a null value, then Direct2D will not transform the destination rectangle of any of the updated sprites. - Specifies the distance, in bytes, between each rectangle in the destinationRectangles array. - If you provide a stride of 0, then the same destination rectangle will be used for each updated sprite. - Specifies the distance, in bytes, between each rectangle in the sourceRectangles array (if that array is given). - If you provide a stride of 0, then the same source rectangle will be used for each updated sprite. - Specifies the distance, in bytes, between each color in the colors array (if that array is given). - If you provide a stride of 0, then the same color will be used for each updated sprite. - Specifies the distance, in bytes, between each transform in the transforms array (if that array is given). - If you provide a stride of 0, then the same transform will be used for each updated sprite. - - - - - Sets the starting coordinates of the linear gradient in the brush's coordinate space. - Microsoft Docs: - The starting two-dimensional coordinates of the linear gradient, in the brush's coordinate space. - - - - - Gets the bounds of the metafile in source space in DIPs. This corresponds to the frame rect in an EMF/EMF+. - Microsoft Docs: - The bounds, in DIPs, of the metafile. - - - - - Creates an image source which shares resources with an original. - Microsoft Docs: - The original image. - Properties for the source image. - Receives the new image source. - - - - - Describes the antialiasing mode used for drawing text. - Microsoft Docs: - - - - Use the system default. See Remarks. - - - Use ClearType antialiasing. - - - Use grayscale antialiasing. - - - Do not use antialiasing. - - - - Retrieves the transform to be applied to this style's nib shape. - Microsoft Docs: - When this method returns, contains a pointer to the transform to be applied to this style's nib shape. - - - - - Gets the interpolation mode of the image brush. - Microsoft Docs: - - - - - Provides values to an SVG glyph for stroke properties. The brush with opacity set to 1 is used as the 'context-stroke'. The opacity of the brush is used as the 'context-stroke-opacity' value. - Microsoft Docs: - Describes how the stroke is painted. A null brush will cause the context-stroke value to be none. - Specifies the 'context-value' for the 'stroke-width' property. - Specifies the 'context-value' for the 'stroke-dasharray' - property. A null value will cause the stroke-dasharray to be set to 'none'. - The the number of dashes in the dash array. - Specifies the 'context-value' for the 'stroke-dashoffset' property. - - - - - Identifiers for properties of the Bitmap source effect. - Microsoft Docs: - - - - The IWICBitmapSource containing the image data to be loaded. - - -The type is IWICBitmapSource. - -The default value is NULL. - - - The scale amount in the X and Y direction. The effect multiplies the width by the X value and the height by the Y value. - This property is a D2D1_VECTOR_2F defined as: (X scale, Y scale). The scale amounts are FLOAT, unitless, and must be positive or 0. - - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The interpolation mode used to scale the image. - If the mode disables the mipmap, then BitmapSouce will cache the image at the resolution determined by the Scale and EnableDPICorrection properties. - - -The type is D2D1_BITMAPSOURCE_INTERPOLATION_MODE. - -The default value is D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR. - - - If you set this to TRUE, the effect will scale the input image to convert the DPI reported by IWICBitmapSource to the DPI of the device context. - The effect uses the interpolation mode you set with the InterpolationMode property. If you set this to FALSE, the effect uses a DPI of 96.0 for the output image. - - -The type is BOOL. - -The default value is FALSE. - - - The alpha mode of the output. This can be either premultiplied or straight. - - -The type is D2D1_BITMAPSOURCE_ALPHA_MODE. - -The default value is D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED. - - - A flip and/or rotation operation to be performed on the image. - - -The type is D2D1_BITMAPSOURCE_ORIENTATION. - -The default value is D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT. - - - - Returns a subset of the patches that make up this gradient mesh. - Microsoft Docs: - Index of the first patch to return. - A pointer to the array to be filled with the patch data. - The number of patches to be returned. - - - - - Specifies the optimization mode for the Directional blur effect. - Microsoft Docs: - - - - Applies internal optimizations such as pre-scaling at relatively small radii. Uses linear filtering. - - - Uses the same optimization thresholds as Speed mode, but uses trilinear filtering. - - - Only uses internal optimizations with large blur radii, where approximations are less likely to be visible. Uses trilinear filtering. - - - - Adds a sequence of quadratic Bezier segments as an array in a single call. - Microsoft Docs: - An array of a sequence of quadratic Bezier segments. - A value indicating the number of quadratic Bezier segments in beziers. - - - - - The quality level of the transform for the Color management effect. - Microsoft Docs: - - - - The lowest quality mode. This mode requires feature level 9_1 or above. - - - Normal quality mode. This mode requires feature level 9_1 or above. - - - The best quality mode. This mode requires feature level 10_0 or above, as well as floating point precision buffers. - This mode supports floating point precision as well as extended range as defined in the ICC v4.3 specification. - - - - Creates a clone of this attribute value. On creation, the cloned attribute is not set on any element. - Microsoft Docs: - Specifies the attribute value to clone. - - - - - Identifiers for properties of the Histogram effect. - Microsoft Docs: - - - - Specifies the number of bins used for the histogram. The range of intensity values that fall into a particular bucket depend on the number of specified buckets. - - -The type is UINT32. - -The default is 256. - - - Specifies the channel used to generate the histogram. This effect has a single data output corresponding to the specified channel. - - -The type is D2D1_CHANNEL_SELECTOR. - -The default is D2D1_CHANNEL_SELECTOR_R. - - - The output array. - - -The type is FLOAT[]. - - - - Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush. - Microsoft Docs: - - - - A value that describes how the brush horizontally tiles those areas that extend past its bitmap. - - - A value that describes how the brush vertically tiles those areas that extend past its bitmap. - - - A value that specifies how the bitmap is interpolated when it is scaled or rotated. - - - - Contains the HWND, pixel size, and presentation options for an ID2D1HwndRenderTarget. - Microsoft Docs: - - - - The HWND to which the render target issues the output from its drawing commands. - - - The size of the render target, in pixels. - - - A value that specifies whether the render target retains the frame after it is presented and whether the render target waits for the device to refresh before presenting. - - - - Creates a new device context with no initially assigned target. - Microsoft Docs: - Options for creating the device context. - The created device context. - - - - - Contains the center point, x-radius, and y-radius of an ellipse. - Microsoft Docs: - - - - The center point of the ellipse. - - - The X-radius of the ellipse. - - - The Y-radius of the ellipse. - - - - Represents the base interface for all of the transforms implemented by the transform author. - Microsoft Docs: - - - - - Sets the maximum amount of texture memory Direct2D accumulates before it purges the image caches and cached texture allocations. - Microsoft Docs: - The new maximum texture memory in bytes. - - - - - Gets the current transform of the render target. - Microsoft Docs: - When this returns, contains the current transform of the render target. This parameter is passed uninitialized. - - - - - The edge mode for the Border effect. - Microsoft Docs: - - - - Repeats the pixels from the edges of the image. - - - Uses pixels from the opposite end edge of the image. - - - Reflects pixels about the edge of the image. - - - - Describes a geometric path that can contain lines, arcs, cubic Bezier curves, and quadratic Bezier curves. - Microsoft Docs: - - - - - Sets the given input image by index. - Microsoft Docs: - The index of the image to set. - The input image to set. - Whether to invalidate the graph at the location of the effect input - - - - - Provides methods to allow a blend operation to be inserted into a transform graph. - Microsoft Docs: - - - - - Creates a Direct2D effect for the specified class ID. - Microsoft Docs: - The built-in or registered effect ID to create the effect. See Built-in Effects for a list of effect IDs. - When this method returns, contains the address of a pointer to the effect. - - - - - Retrieves a set simple color profile. - Microsoft Docs: - Pointer to a D2D1_SIMPLE_COLOR_PROFILE that will contain the simple color profile when the method returns. - - - - - Identifiers for properties of the Spot-diffuse lighting effect. - Microsoft Docs: - - - - The light position of the point light source. The property is a D2D1_VECTOR_3F defined as (x, y, z). The units are in device-independent pixels (DIPs) and are unbounded. - - -The type is D2D1_VECTOR_3F. - - -The default value is {0.0f, 0.0f, 0.0f}. - - - Where the spot light is focused. The property is exposed as a D2D1_VECTOR_3F with – (x, y, z). The units are in DIPs and the values are unbounded. - - -The type is D2D1_VECTOR_3F. - - -The default value is {0.0f, 0.0f, 0.0f}. - - - The focus of the spot light. This property is unitless and is defined between 0 and 200. - - -The type is FLOAT. - -The default value is 1.0f. - - - The cone angle that restricts the region where the light is projected. No light is projected outside the cone. The limiting cone angle is the angle between the spot light axis (the axis between the LightPosition and PointsAt properties) and the spot light cone. This property is defined in degrees and must be between 0 to 90 degrees. - - -The type is FLOAT. - -The default value is 90.0f. - - - The ratio of diffuse reflection to amount of incoming light. This property must be between 0 and 10,000 and is unitless. - - -The type is FLOAT. - -The default value is 1.0f. - - - The scale factor in the Z direction. The surface scale is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The color of the incoming light. This property is exposed as a Vector 3 – (R, G, B) and used to compute LR, LG, LB. - - -The type is D2D1_VECTOR_3F. - -The default value is {1.0f, 1.0f, 1.0f} - - - The size of an element in the Sobel kernel used to generate the surface normal in the X and Y direction. This property maps to the dx and dy values in the Sobel gradient. - This property is a D2D1_VECTOR_2F(Kernel Unit Length X, Kernel Unit Length Y) and is defined in (DIPs/Kernel Unit). - The effect uses bilinear interpolation to scale the bitmap to match size of kernel elements. - - -The type is D2D1_VECTOR_2F. - - -The default value is {1.0f, 1.0f}. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_SPOTDIFFUSE_SCALE_MODE. - - -The default value is D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR. - - - - Returns the number of dashes in the dash array. - Microsoft Docs: - - - - - Values for the D2D1_EDGEDETECTION_PROP_MODE property of the Edge Detection effect. - Microsoft Docs: - - - - Indicates the Sobel operator should be used for edge detection. - - - Indicates the Prewitt operator should be used for edge detection. - - - - Specifies the bitmap source that this brush uses to paint. - Microsoft Docs: - The bitmap source used by the brush. - - - - - Defines the type of SVG POD attribute to set or get. - Microsoft Docs: - - - - The attribute is a FLOAT. - - - The attribute is a D2D1_COLOR_F. - - - The attribute is a D2D1_FILL_MODE. - - - The attribute is a D2D1_SVG_DISPLAY. - - - The attribute is a D2D1_SVG_OVERFLOW. - - - The attribute is a D2D1_SVG_LINE_CAP. - - - The attribute is a D2D1_SVG_LINE_JOIN. - - - The attribute is a D2D1_SVG_VISIBILITY. - - - The attribute is a D2D1_MATRIX_3X2_F. - - - The attribute is a D2D1_SVG_UNIT_TYPE. - - - The attribute is a D2D1_EXTEND_MODE. - - - The attribute is a D2D1_SVG_PRESERVE_ASPECT_RATIO. - - - The attribute is a D2D1_SVG_VIEWBOX. - - - The attribute is a D2D1_SVG_LENGTH. - - - - Identifiers for properties of the Point-specular lighting effect. - Microsoft Docs: - - - - The light position of the point light source. The property is a D2D1_VECTOR_3F defined as (x, y, z). The units are in device-independent pixels (DIPs) and the values are unitless and unbounded. - - -The type is D2D1_VECTOR_3F. - -The default value is {0.0f, 0.0f, 0.0f}. - - - The exponent for the specular term in the Phong lighting equation. A larger value corresponds to a more reflective surface. This value is unitless and must be between 1.0 and 128. - - -The type is FLOAT. - -The default value is 1.0f. - - - The ratio of specular reflection to the incoming light. The value is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The scale factor in the Z direction for generating a height map. The value is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The color of the incoming light. This property is exposed as a D2D1_VECTOR_3F – (R, G, B) and used to compute LR, LG, LB. - - -The type is D2D1_VECTOR_3F. - -The default value is {1.0f, 1.0f, 1.0f}. - - - The size of an element in the Sobel kernel used to generate the surface normal in the X and Y directions. This property maps to the dx and dy values in the Sobel gradient. - This property is a D2D1_VECTOR_2F(Kernel Unit Length X, Kernel Unit Length Y) and is defined in (DIPs/Kernel Unit). - The effect uses bilinear interpolation to scale the bitmap to match size of kernel elements. - - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_POINTSPECULAR_SCALE_MODE. - -The default value is D2D1_POINTSPECULAR_SCALE_MODE_LINEAR. - - - - Represents an object that can receive drawing commands. Interfaces that inherit from ID2D1RenderTarget render the drawing commands they receive in different ways. - Microsoft Docs: - - - - - Renders a given gradient mesh to the target. - Microsoft Docs: - The gradient mesh to be rendered. - - - - - Represents a resource domain whose objects and device contexts can be used together. This interface performs all the same functions as the ID2D1Device3 interface. It also enables the creation of ID2D1DeviceContext4 objects. - Microsoft Docs: - - - - - Sets the antialiasing mode of the render target. The antialiasing mode applies to all subsequent drawing operations, excluding text and glyph drawing operations. - Microsoft Docs: - The antialiasing mode for future drawing operations. - - - - - Creates Direct2D resources. This interface performs all the same functions as the ID2D1Factory6 interface, plus it enables the creation of ID2D1Device6 objects. - Microsoft Docs: - - - - - Contains the dimensions and corner radii of a rounded rectangle. - Microsoft Docs: - - - - The coordinates of the rectangle. - - - The x-radius for the quarter ellipse that is drawn to replace every corner of the rectangle. - - - The y-radius for the quarter ellipse that is drawn to replace every corner of the rectangle. - - - - Describes image brush features. - Microsoft Docs: - - - - The source rectangle in the image space from which the image will be tiled or interpolated. - - - The extend mode in the image x-axis. - - - The extend mode in the image y-axis. - - - The interpolation mode to use when scaling the image brush. - - - - Gets the name of the attribute at the given index. - Microsoft Docs: - The index of the attribute. - Outputs the name of the attribute. - Length of the string returned in the name argument. - Outputs whether the attribute is set to the inherit value. - - - - - Removes points from the end of the array. - Microsoft Docs: - Specifies how many points to remove. - - - - - Describes features of an effect. - Microsoft Docs: - - - - The effect whose input connection is being specified. - - - The input index of the effect that is being considered. - - - The amount of data that would be available on the input. This can be used to query this information when the data is not yet available. - - - - Specifies the options with which the Direct2D device, factory, and device context are created. - Microsoft Docs: - - - - The threading mode with which the corresponding root objects will be created. - - - The debug level that the root objects should be created with. - - - The device context options that the root objects should be created with. - - - - Loads the given shader by its unique ID. - Microsoft Docs: - The unique id that identifies the shader. - The buffer that contains the shader to register. - The size of the shader buffer in bytes. - - - - - Creates a color context from an IWICColorContext. The D2D1ColorContext space of the resulting context varies, see Remarks for more info. - Microsoft Docs: - The IWICColorContext used to initialize the color context. - When this method returns, contains the address of a pointer to a new color context. - - - - - Retrieves the rectangle that describes the rectangle geometry's dimensions. - Microsoft Docs: - Contains a pointer to a rectangle that describes the rectangle geometry's dimensions when this method returns. You must allocate storage for this parameter. - - - - - Represents an ellipse. - Microsoft Docs: - - - - - Specifies a value for the SVG visibility property. - Microsoft Docs: - - - - The element is visible. - - - The element is invisible. - - - - Represents a bitmap that has been bound to an ID2D1RenderTarget. - Microsoft Docs: - - - - - This interface performs all the same functions as the ID2D1DeviceContext3 interface, plus it enables functionality for handling new types of color font glyphs. - Microsoft Docs: - - - - - Creates a new ID2D1DeviceContext3 from this Direct2D device. - Microsoft Docs: - The options to be applied to the created device context. - When this method returns, contains a pointer to the new device context. - - - - - Ends the current figure; optionally, closes it. - Microsoft Docs: - A value that indicates whether the current figure is closed. If the figure is closed, a line is drawn between the current point and the start point specified by BeginFigure. - - - - - Allows a transform to state how it would map a rectangle requested on its output to a set of sample rectangles on its input. - Microsoft Docs: - The output rectangle from which the inputs must be mapped. - The corresponding set of inputs. The inputs will directly correspond to the transform inputs. - The number of inputs specified. Direct2D guarantees that this is equal to the number of inputs specified on the transform. - - - - - Creates Direct2D resources. This interface also enables the creation of ID2D1Device3 objects. - Microsoft Docs: - - - - - Specifies whether an arc should be greater than 180 degrees. - Microsoft Docs: - - - - An arc's sweep should be 180 degrees or less. - - - An arc's sweep should be 180 degrees or greater. - - - - Identifiers for the properties of the Arithmetic composite effect. - Microsoft Docs: - - - - The coefficients for the equation used to composite the two input images. The coefficients are unitless and unbounded. - - -Type is D2D1_VECTOR_4F. - -Default value is {1.0f, 0.0f, 0.0f, 0.0f}. - - - The effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. - If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, - but other effects and the output surface may clamp the values if they are not of high enough precision. - - -Type is BOOL. - -Default value is FALSE. - - - - Gets the first child of this element. - Microsoft Docs: - Outputs the first child of this element. - - - - - Represents a producer of pixels that can fill an arbitrary 2D plane. - Microsoft Docs: - - - - - Identifiers for properties of the Hue rotate effect. - Microsoft Docs: - - - - The angle to rotate the hue, in degrees. - - -The type is FLOAT. - -The default is 0.0f. - - - - Specifies how a brush paints areas outside of its normal content area. - Microsoft Docs: - - - - Repeat the edge pixels of the brush's content for all regions outside the normal content area. - - - Repeat the brush's content. - - - The same as D2D1_EXTEND_MODE_WRAP, except that alternate tiles of the brush's content are flipped. (The brush's normal content is drawn untransformed.) - - - - Creates a new device context from a Direct2D device. - Microsoft Docs: - The options to be applied to the created device context. - When this method returns, contains the address of a pointer to the new device context. - - - - - Draws an SVG document. - Microsoft Docs: - The SVG document to draw. - - - - - Gets the given input image by index. - Microsoft Docs: - The index of the image to retrieve. - When this method returns, contains the address of a pointer to the image that is identified by Index. - - - - - Represents a collection of D2D1_GRADIENT_STOP objects for linear and radial gradient brushes. It provides get methods for all the new parameters added to the gradient stop collection. - Microsoft Docs: - - - - - Sets the size of the initial viewport. - Microsoft Docs: - The size of the viewport. - - - - - Creates a color context by loading it from the specified filename. The profile bytes are the contents of the file specified by Filename. - Microsoft Docs: - The path to the file containing the profile bytes to initialize the color context with. - When this method returns, contains the address of a pointer to a new color context. - - - - - Provides factory methods and other state management for effect and transform authors. - Microsoft Docs: - - - - - The command sink is implemented by you for an application when you want to receive a playback of the commands recorded in a command list. - Microsoft Docs: - - - - - Enables creation and drawing of geometry realization objects. - Microsoft Docs: - - - - - Sets the resource texture corresponding to the given shader texture index. - Microsoft Docs: - The index of the texture to be bound to the pixel shader. - The created resource texture. - - - - - Retrieves the offset of the gradient origin relative to the gradient ellipse's center. - Microsoft Docs: - - - - - Specifies the interpolation mode for the YCbCr effect. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - The interpolation mode the Point-specular lighting effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Describes mapped memory from the ID2D1Bitmap1::Map API. - Microsoft Docs: - - - - The size in bytes of an individual scanline in the bitmap. - - - The data inside the bitmap. - - - - Specifies a value for the SVG stroke-linecap property. - Microsoft Docs: - - - - The property is set to SVG's 'butt' value. - - - The property is set to SVG's 'square' value. - - - The property is set to SVG's 'round' value. - - - - Retrieves the bitmap for this render target. The returned bitmap can be used for drawing operations. - Microsoft Docs: - When this method returns, contains the address of a pointer to the bitmap for this render target. This bitmap can be used for drawing operations. - - - - - Gets a value that describes the stroke's dash pattern. - Microsoft Docs: - - - - - Gets the color context information associated with the bitmap. - Microsoft Docs: - When this method returns, contains the address of a pointer to the color context interface associated with the bitmap. - - - - - Identifiers for properties of the Edge Detection effect. - Microsoft Docs: - - - - The D2D1_EDGEDETECTION_PROP_STRENGTH property is a float value modulating the response of the edge detection filter. A low strength value means that weaker edges will get filtered out, - while a high value means stronger edges will get filtered out. The allowed range is 0.0 to 1.0. The default value is 0.5. - - - The D2D1_EDGEDETECTION_PROP_BLUR_RADIUS property is a float value specifying the amount of blur to apply. Applying blur is used to remove high frequencies and reduce phantom edges. - The allowed range is 0.0 to 10.0. The default value is 0.0 (no blur applied). - - - The D2D1_EDGEDETECTION_PROP_MODE property is a D2D1_EDGEDETECTION_MODE enumeration value which mode to use for edge detection. - The default value is D2D1_EDGEDETECTION_MODE_SOBEL. - - - The D2D1_EDGEDETECTION_PROP_OVERLAY_EDGES property is a boolean value. Edge detection only applies to the RGB channels, the alpha channel is ignored for purposes of detecting edges. - If D2D1_EDGEDETECTION_PROP_OVERLAY_EDGES is false, the output edges is fully opaque. If D2D1_EDGEDETECTION_PROP_OVERLAY_EDGES is true, the input opacity is preserved. - The default value is false. - - - The D2D1_EDGEDETECTION_PROP_ALPHA_MODE property is a D2D1_ALPHA_MODE enumeration value indicating the alpha mode of the input file. - If the input is not opaque, this value is used to determine whether to unpremultiply the inputs. - See the About Alpha Modes section of the Supported Pixel Formats and Alpha Modes topic for additional information. - - The default value is D2D1_ALPHA_MODE_PREMULTIPLIED. - - - - Returns the requested fill parameters. - Microsoft Docs: - Describes how the area is painted. - - - - - Defines the direction that an elliptical arc is drawn. - Microsoft Docs: - - - - Arcs are drawn in a counterclockwise (negative-angle) direction. - - - Arcs are drawn in a clockwise (positive-angle) direction. - - - - Indicates to the command sink a rectangle to be filled. - Microsoft Docs: - The rectangle to fill. - The brush with which to fill the rectangle. - - - - - Identifiers for properties of the Contrast effect. - Microsoft Docs: - - - - The D2D1_CONTRAST_PROP_CONTRAST property is a float value indicating the amount by which to adjust the contrast of the image. Negative values reduce contrast, while positive values increase contrast. - Minimum value is -1.0f, maximum value is 1.0f. The default value for the property is 0.0f. - - - The D2D1_CONTRAST_PROP_CLAMP_INPUT property is a boolean value indicating whether or not to clamp the input to [0.0, 1.0]. The default value for the property is FALSE. - - - - Specifies a value for the SVG overflow property. - Microsoft Docs: - - - - The element is not clipped to its viewport. - - - The element is clipped to its viewport. - - - - Specifies a label for subsequent drawing operations. - Microsoft Docs: - A label to apply to subsequent drawing operations. - A label to apply to subsequent drawing operations. - - - - - Identifiers for properties of the Displacement map effect. - Microsoft Docs: - - - - Multiplies the intensity of the selected channel from the displacement image. The higher you set this property, the more the effect displaces the pixels. - - -The type is FLOAT. - -The default value is 0.0f. - - - The effect extracts the intensity from this color channel and uses it to spatially displace the image in the X direction. - - -The type is D2D1_CHANNEL_SELECTOR. - -The default value is D2D1_CHANNEL_SELECTOR_A - - - The effect extracts the intensity from this color channel and uses it to spatially displace the image in the Y direction. - - -The type is D2D1_CHANNEL_SELECTOR. - -The default value is D2D1_CHANNEL_SELECTOR_A - - - - Sets the tags that correspond to the tags in the command sink. - Microsoft Docs: - The first tag to associate with the primitive. - The second tag to associate with the primitive. - - - - - Identifiers for properties of the Directional blur effect. - Microsoft Docs: - - - - The amount of blur to be applied to the image. You can compute the blur radius of the kernel by multiplying the standard deviation by 3. - The units of both the standard deviation and blur radius are DIPs. A value of 0 DIPs disables this effect. - - -The type is FLOAT. - -The default value is 3.0f. - - - The angle of the blur relative to the x-axis, in the counterclockwise direction. The units are specified in degrees. - - -The blur kernel is first generated using the same process as for the Gaussian blur effect. The kernel values are then transformed according to the blur angle. - -The type is FLOAT. - -The default value is 0.0f. - - - The optimization mode. See Optimization modes for more info. - - -The type is D2D1_DIRECTIONALBLUR_OPTIMIZATION. - -The default value is D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED. - - - The mode used to calculate the border of the image, soft or hard. See Border modes for more info. - - -The type is D2D1_BORDER_MODE. - -The default value is D2D1_BORDER_MODE_SOFT. - - - - Represents a geometry that has been transformed. - Microsoft Docs: - - - - - Gets the maximum capacity of the color glyph cache. - Microsoft Docs: - - - - - Removes the last axis-aligned clip from the render target. After this method is called, the clip is no longer applied to subsequent drawing operations. - Microsoft Docs: - - - - - Loads the given shader by its unique ID. - Microsoft Docs: - The unique id that identifies the shader. - The buffer that contains the shader to register. - The size of the shader buffer in bytes. - - - - - Gets the options used in creating the bitmap. - Microsoft Docs: - - - - - Removes data from the end of the segment data array. - Microsoft Docs: - Specifies how much data to remove. - - - - - Represents a resource domain whose objects and device contexts can be used together. This interface performs all the same functions as the ID2D1Device2 interface. It also enables the creation of ID2D1DeviceContext3 objects. - Microsoft Docs: - - - - - Copies the specified region from the specified bitmap into the current bitmap. - Microsoft Docs: - In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. - The bitmap to copy from. - The area of bitmap to copy. - - - - - Creates a vertex buffer or finds a standard vertex buffer and optionally initializes it with vertices. - Microsoft Docs: - The properties used to describe the vertex buffer and vertex shader. - The unique id that identifies the vertex buffer. - The properties used to define a custom vertex buffer. If you use a built-in vertex shader, you don't have to specify this property. - The returned vertex buffer. - - - - - Updates the specified segments in this ink object with new control points. - Microsoft Docs: - The index of the first segment in this ink object to update. - A pointer to the array of segment data to be used in the update. - The number of segments in this ink object that will be updated with new data. Note that segmentsCount must be less than or equal to the number of segments in the ink object minus startSegment. - - - - - A specialized implementation of the Shantzis calculations to a transform implemented on the GPU. - Microsoft Docs: - - - - - Retrieves the pixel format and alpha mode of the bitmap. - Microsoft Docs: - - - - - Paints the interior of the specified geometry. - Microsoft Docs: - The geometry to paint. - The brush used to paint the geometry's interior. - The opacity mask to apply to the geometry, or NULL for no opacity mask. If an opacity mask (the opacityBrush parameter) is specified, brush must be an ID2D1BitmapBrush that has its x- and y-extend modes set to D2D1_EXTEND_MODE_CLAMP. For more information, see the Remarks section. - - - - - Sets a new transform. - Microsoft Docs: - The transform to be set. - - - - - Retrieves a value that specifies how far in the dash sequence the stroke will start. - Microsoft Docs: - - - - - Streams the contents of the command list to the specified command sink. - Microsoft Docs: - The sink into which the command list will be streamed. - - - - - Loads the given shader by its unique ID. - Microsoft Docs: - The unique id that identifies the shader. - The buffer that contains the shader to register. - The size of the shader buffer in bytes. - - - - - Provides factory methods and other state management for effect and transform authors. - Microsoft Docs: - - - - - Gets the invalid rectangles that have accumulated since the last time the effect was drawn and EndDraw was then called on the device context. - Microsoft Docs: - The effect to get the invalid rectangles from. - An array of D2D1_RECT_F structures. You must allocate this to the correct size. You can get the count of the invalid rectangles using the GetEffectInvalidRectangleCount method. - The number of rectangles to get. - - - - - Populates an ID2D1Mesh object with triangles. - Microsoft Docs: - - - - - Represents a producer of pixels that can fill an arbitrary 2D plane. - Microsoft Docs: - - - - - Gets the antialiasing mode, transform, tags, primitive blend, and unit mode portion of the drawing state. - Microsoft Docs: - When this method returns, contains the antialiasing mode, transform, tags, primitive blend, and unit mode portion of the drawing state. You must allocate storage for this parameter. - - - - - Retrieves a rounded rectangle that describes this rounded rectangle geometry. - Microsoft Docs: - A pointer that receives a rounded rectangle that describes this rounded rectangle geometry. You must allocate storage for this parameter. - - - - - Identifiers for properties of the Linear transfer effect. - Microsoft Docs: - - - - The Y-intercept of the linear function for the Red channel. - - -The type is FLOAT. - -The default is 0.0f. - - - The slope of the linear function for the Red channel. - - -The type is FLOAT. - -The default is 1.0f. - - - If you set this to TRUE the effect does not apply the transfer function to the Red channel. - If you set this to FALSE the effect applies the RedLinearTransfer function to the Red channel. - - -The type is BOOL. - -The default is FALSE. - - - The Y-intercept of the linear function for the Green channel. - - -The type is FLOAT. - -The default is 0.0f. - - - The slope of the linear function for the Green channel. - - -The type is FLOAT. - -The default is 1.0f. - - - If you set this to TRUE the effect does not apply the transfer function to the Green channel. - If you set this to FALSE the effect applies the GreenLinearTransfer function to the Green channel. - - -The type is BOOL. - -The default is FALSE. - - - The Y-intercept of the linear function for the Blue channel. - - -The type is FLOAT. - -The default is 0.0f. - - - The slope of the linear function for the Blue channel. - - -The type is FLOAT. - -The default is 1.0f. - - - If you set this to TRUE the effect does not apply the transfer function to the Blue channel. - If you set this to FALSE the effect applies the BlueLinearTransfer function to the Blue channel. - - -The type is BOOL. - -The default is FALSE. - - - The Y-intercept of the linear function for the Alpha channel. - - -The type is FLOAT. - -The default is 0.0f. - - - The slope of the linear function for the Alpha channel. - - -The type is FLOAT. - -The default is 0.0f. - - - If you set this to TRUE the effect does not apply the transfer function to the Alpha channel. - If you set this to FALSE the effect applies the AlphaLinearTransfer function to the Alpha channel. - - -The type is BOOL. - -The default is FALSE. - - - Whether the effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. - The effect clamps the values before it premultiplies the alpha . - - -If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, but other effects and - the output surface may clamp the values if they are not of high enough precision. - -The type is BOOL. - -The default is FALSE. - - - - Gets the string length of the element id which acts as the paint server. This id is used if the paint type is D2D1_SVG_PAINT_TYPE_URI. - Microsoft Docs: - - - - - Creates a new Direct2D device from the given IDXGIDevice. - Microsoft Docs: - The IDXGIDevice from which to create the Direct2D device. - The created device. - - - - - Identifiers for properties of the Highlights and Shadows effect. - Microsoft Docs: - - - - The D2D1_HIGHLIGHTSANDSHADOWS_PROP_HIGHLIGHTS property is a float value indicating how much to increase or decrease highlights. The allowed range is -1.0 to 1.0. The default value is 0.0. - - - The D2D1_HIGHLIGHTSANDSHADOWS_PROP_SHADOWS property is a float value indicating how much to increase or decrease shadows. The allowed range is -1.0 to 1.0. The default value is 0.0. - - - The D2D1_HIGHLIGHTSANDSHADOWS_PROP_CLARITY property is a float value indicating how much to increase or decrease clarity. The allowed range is -1.0 to 1.0. The default value is 0.0. - - - The D2D1_HIGHLIGHTSANDSHADOWS_PROP_INPUT_GAMMA property is a D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA enumeration value - indicating the gamma of the input image. The Highlights and Shadows effect works in linear gamma space, so if the input image is know to be linear, the D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_LINEAR value should be used to prevent sRGB to linear conversions from being performed. - - - The D2D1_HIGHLIGHTSANDSHADOWS_PROP_MASK_BLUR_RADIUS property is a float value controlling the size of the region used around a pixel to classify the pixel as highlight or shadow. Lower values result in more localized adjustments. - The allowed range is 0.0 to 10.0. The default value is 1.25. - - - - This interface is used to describe a GPU rendering pass on a vertex or pixel shader. It is passed to ID2D1DrawTransform. - Microsoft Docs: - - - - - Retrieves the x-radius of the gradient ellipse. - Microsoft Docs: - - - - - This specifies options that apply to the device context for its lifetime. - Microsoft Docs: - - - - The device context is created with default options. - - - Distribute rendering work across multiple threads. Refer to Improving the performance of Direct2D apps for additional notes on the use of this flag. - - - - Stops redirecting drawing operations to the layer that is specified by the last PushLayer call. - Microsoft Docs: - - - - - Specifies the different methods by which two geometries can be combined. - Microsoft Docs: - - - - The two regions are combined by taking the union of both. Given two geometries, A and B, the resulting geometry is geometry A + geometry B. - - - The two regions are combined by taking their intersection. The new area consists of the overlapping region between the two geometries. - - - The two regions are combined by taking the area that exists in the first region but not the second and the area that exists in the second region but not the first. Given two geometries, A and B, the new region consists of (A-B) + (B-A). - - - The second region is excluded from the first. Given two geometries, A and B, the area of geometry B is removed from the area of geometry A, producing a region that is A-B. - - - - Converts Direct2D primitives stored in an ID2D1CommandList into a fixed page representation. The print sub-system then consumes the primitives. - Microsoft Docs: - - - - - Creates and returns an offset transform. - Microsoft Docs: - The offset amount. - When this method returns, contains the address of a pointer to an offset transform object. - - - - - A container for 3D lookup table data that can be passed to the LookupTable3D effect. - Microsoft Docs: - - - - - Retrieves the starting point for this ink object. - Microsoft Docs: - - - - - Closes the geometry sink, indicates whether it is in an error state, and resets the sink's error state. - Microsoft Docs: - - - - - This method streams the contents of the command to the given metafile sink. - Microsoft Docs: - The sink into which Direct2D will call back. - - - - - Specifies how the layer contents should be prepared. - Microsoft Docs: - - - - Default layer behavior. A premultiplied layer target is pushed and its contents are cleared to transparent black. - - - The layer is not cleared to transparent black. - - - The layer is always created as ignore alpha. All content rendered into the layer will be treated as opaque. - - - - Draws the outline of the specified geometry using the specified stroke style. - Microsoft Docs: - The geometry to draw. - The brush used to paint the geometry's stroke. - The width of the stroke, in device-independent pixels. The value must be greater than or equal to 0.0f. If this parameter isn't specified, it defaults to 1.0f. The stroke is centered on the line. - The style of stroke to apply to the geometry's outline, or NULL to paint a solid stroke. - - - - - Closes the sink and returns its error status. - Microsoft Docs: - - - - - This interface performs all the same functions as the ID2D1DeviceContext4 interface, plus it enables the creation of color contexts and Svg documents. - Microsoft Docs: - - - - - This creates a blend transform that can be inserted into a transform graph. - Microsoft Docs: - The number of inputs to the blend transform. - Describes the blend transform that is to be created. - The returned blend transform. - - - - - Describes whether a render target uses hardware or software rendering, or if Direct2D should select the rendering mode. - Microsoft Docs: - - - - The render target uses hardware rendering, if available; otherwise, it uses software rendering. - - - The render target uses software rendering only. - - - The render target uses hardware rendering only. - - - - Returns the DXGI device associated with this Direct2D device. - Microsoft Docs: - The DXGI device associated with this Direct2D device. - - - - - Retrieves the source image used to create the transformed image source. - Microsoft Docs: - Retrieves the source image used to create the transformed image source. - - - - - Describes the drawing state of a render target. - Microsoft Docs: - - - - The antialiasing mode for subsequent nontext drawing operations. - - - The antialiasing mode for subsequent text and glyph drawing operations. - - - A label for subsequent drawing operations. - - - A label for subsequent drawing operations. - - - The transformation to apply to subsequent drawing operations. - - - - This method is called once for each record stored in a metafile. - Microsoft Docs: - The type of the record. - The data for the record. - The byte size of the record data. - - - - - Tracks a transform-created resource texture. - Microsoft Docs: - - - - - Renders a given geometry realization to the target with the specified brush. - Microsoft Docs: - The geometry realization to be rendered. - The brush to render the realization with. - - - - - Identifiers for the properties of the 3D perspective transform effect. - Microsoft Docs: - - - - The interpolation mode the effect uses on the image. There are 5 scale modes that range in quality and speed. - - -Type is D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE. - -Default value is D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR. - - - The mode used to calculate the border of the image, soft or hard. See Border modes for more info. - - -Type is D2D1_BORDER_MODE. - -Default value is D2D1_BORDER_MODE_SOFT. - - - The distance from the PerspectiveOrigin to the projection plane. The value specified in DIPs and must be greater than 0. - - -Type is FLOAT. - -Default value is 1000.0f. - - - The X and Y location of the viewer in the 3D scene. This property is a D2D1_VECTOR_2F defined as: (point X, point Y). The units are in DIPs. - You set the Z value with the Depth property. - - -Type is D2D1_VECTOR_2F. - -Default value is {0.0f, 0.0f}. - - - A translation the effect performs before it rotates the projection plane. This property is a D2D1_VECTOR_3F defined as: (X, Y, Z). The units are in DIPs. - - -Type is D2D1_VECTOR_3F. - -Default value is {0.0f, 0.0f, 0.0f}. - - - A translation the effect performs after it rotates the projection plane. This property is a D2D1_VECTOR_3F defined as: (X, Y, Z). The units are in DIPs. - - -Type is D2D1_VECTOR_3F. - -Default value is {0.0f, 0.0f, 0.0f}. - - - The center point of the rotation the effect performs. This property is a D2D1_VECTOR_3F defined as: (X, Y, Z). The units are in DIPs. - - -Type is D2D1_VECTOR_3F. - -Default value is {0.0f, 0.0f, 0.0f}. - - - The angles of rotation for each axis. This property is a D2D1_VECTOR_3F defined as: (X, Y, Z). The units are in degrees. - - -Type is D2D1_VECTOR_3F. - -Default value is {0.0f, 0.0f, 0.0f}. - - - - Paints an area with a bitmap. - Microsoft Docs: - - - - - The unit mode changes the meaning of subsequent units from device-independent pixels (DIPs) to pixels or the other way. The command sink does not record a DPI, this is implied by the playback context or other playback interface such as ID2D1PrintControl. - Microsoft Docs: - The enumeration that specifies how units are to be interpreted. - - - - - Contains the control point and end point for a quadratic Bezier segment. - Microsoft Docs: - - - - The control point of the quadratic Bezier segment. - - - The end point of the quadratic Bezier segment. - - - - Sets the render information used to specify the compute shader pass. - Microsoft Docs: - The render information object to set. - - - - - Gets the world-space bounds in DIPs of the glyph run using the device context DPI. - Microsoft Docs: - The origin of the baseline for the glyph run. - The glyph run to render. - The DirectWrite measuring mode that indicates how glyph metrics are used to measure text when it is formatted. - The bounds of the glyph run in DIPs and in world space. - - - - - Gets the bounds of the metafile, in device-independent pixels (DIPs), as reported in the metafile’s header. - Microsoft Docs: - The bounds, in DIPs, of the metafile. - - - - - Returns the HWND associated with this render target. - Microsoft Docs: - - - - - Gets the paint type. - Microsoft Docs: - - - - - Creates a new, empty sprite batch. After creating a sprite batch, use ID2D1SpriteBatch::AddSprites to add sprites to it, then use ID2D1DeviceContext3::DrawSpriteBatch to draw it. - Microsoft Docs: - When this method returns, contains a pointer to a new, empty sprite batch to be populated by the app. - - - - - Sets the offset in the current offset transform. - Microsoft Docs: - The new offset to apply to the offset transform. - - - - - Gets the target currently associated with the device context. - Microsoft Docs: - When this method returns, contains the address of a pointer to the target currently associated with the device context. - - - - - Describes a node in a transform topology. - Microsoft Docs: - - - - - Describes the shape that joins two lines or segments. - Microsoft Docs: - - - - Regular angular vertices. - - - Beveled vertices. - - - Rounded vertices. - - - Regular angular vertices unless the join would extend beyond the miter limit; otherwise, beveled vertices. - - - - Indicates whether the format is supported by the device context. - Microsoft Docs: - The DXGI format to check. - - - - - Specifies the pixel snapping policy when rendering color bitmap glyphs. - Microsoft Docs: - - - - Color bitmap glyph positions are snapped to the nearest pixel if the bitmap - resolution matches that of the device context. - - - Color bitmap glyph positions are not snapped. - - - - Contains the starting point and endpoint of the gradient axis for an ID2D1LinearGradientBrush. - Microsoft Docs: - - - - In the brush's coordinate space, the starting point of the gradient axis. - - - In the brush's coordinate space, the endpoint of the gradient axis. - - - - Used to specify the blend mode for all of the Direct2D blending operations. - Microsoft Docs: - - - - The standard source-over-destination blend mode. - - - The destination is rendered over the source. - - - Performs a logical clip of the source pixels against the destination pixels. - - - The inverse of the D2D1_COMPOSITE_MODE_SOURCE_IN operation. - - - This is the logical inverse to D2D1_COMPOSITE_MODE_SOURCE_IN. - - - The is the logical inverse to D2D1_COMPOSITE_MODE_DESTINATION_IN. - - - Writes the source pixels over the destination where there are destination pixels. - - - The logical inverse of D2D1_COMPOSITE_MODE_SOURCE_ATOP. - - - The source is inverted with the destination. - - - The channel components are summed. - - - The source is copied to the destination; the destination pixels are ignored. - - - Equivalent to D2D1_COMPOSITE_MODE_SOURCE_COPY, but pixels outside of the source bounds are unchanged. - - - Destination colors are inverted according to a source mask. - - - - This interface performs all the same functions as the existing ID2D1CommandSink2 interface. It also enables access to sprite batch rendering. - Microsoft Docs: - - - - - Provides values to an SVG glyph for fill. - Microsoft Docs: - Describes how the area is painted. A null brush will cause the context-fill value to come from - the defaultFillBrush. If the defaultFillBrush is also null, the context-fill value will be 'none'. - To set the ‘context-fill’ value, this method uses the provided brush with its opacity set to 1. To set the ‘context-fill-opacity’ value, this method uses the opacity of the provided brush. - - - - - Sets a new primitive blend mode. Allows access to the MAX primitive blend mode. - Microsoft Docs: - The primitive blend that will apply to subsequent primitives. - - - - - Gets a value that specifies how the ends of each dash are drawn. - Microsoft Docs: - - - - - A developer implemented interface that allows a metafile to be replayed. - Microsoft Docs: - - - - - Returns the number of segments in this ink object. - Microsoft Docs: - - - - - Identifiers for properties of the Distant-diffuse lighting effect. - Microsoft Docs: - - - - The direction angle of the light source in the XY plane relative to the X-axis in the counter clock wise direction. The units are in degrees and must be between 0 and 360 degrees. - - -The type is FLOAT. - -The default value is 0.0f. - - - The direction angle of the light source in the YZ plane relative to the Y-axis in the counter clock wise direction. The units are in degrees and must be between 0 and 360 degrees. - - -The type is FLOAT. - -The default value is 0.0f. - - - The ratio of diffuse reflection to amount of incoming light. This property must be between 0 and 10,000 and is unitless. - - -The type is FLOAT. - -The default value is 1.0f. - - - The scale factor in the Z direction. The surface scale is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The color of the incoming light. This property is exposed as a D2D1_VECTOR_3F – (R, G, B) and used to compute LR, LG, LB. - - -The type is D2D1_VECTOR_3F. - -The default value is {1.0f, 1.0f, 1.0f}. - - - The size of an element in the Sobel kernel used to generate the surface normal in the X and Y direction. This property maps to the dx and dy values in the Sobel gradient. This property is a D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) and is defined in (device-independent pixels (DIPs)/Kernel Unit). The effect uses bilinear interpolation to scale the bitmap to match size of kernel elements. - - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_DISTANTDIFFUSE_SCALE_MODE. - -The default value is D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR. - - - - Specifies the paint type for an SVG fill or stroke. - Microsoft Docs: - - - - The fill or stroke is not rendered. - - - A solid color is rendered. - - - The current color is rendered. - - - A paint server, defined by another element in the SVG document, is used. - - - A paint server, defined by another element in the SVG document, is used. If the paint server reference is invalid, fall back to D2D1_SVG_PAINT_TYPE_NONE. - - - A paint server, defined by another element in the SVG document, is used. If the paint server reference is invalid, fall back to D2D1_SVG_PAINT_TYPE_COLOR. - - - A paint server, defined by another element in the SVG document, is used. If the paint server reference is invalid, fall back to D2D1_SVG_PAINT_TYPE_CURRENT_COLOR. - - - - Draws the provided image to the command sink. - Microsoft Docs: - The image to be drawn to the command sink. - This defines the offset in the destination space that the image will be rendered to. The entire logical extent of the image will be rendered to the corresponding destination. If not specified, the destination origin will be (0, 0). The top-left corner of the image will be mapped to the target offset. This will not necessarily be the origin. - The corresponding rectangle in the image space will be mapped to the provided origins when processing the image. - The interpolation mode to use to scale the image if necessary. - If specified, the composite mode that will be applied to the limits of the currently selected clip. - - - - - Specifies which gamma is used for interpolation. - Microsoft Docs: - - - - Interpolation is performed in the standard RGB (sRGB) gamma. - - - Interpolation is performed in the linear-gamma color space. - - - - Indicates whether the buffer precision is supported by the underlying Direct2D device. - Microsoft Docs: - The buffer precision to check. - - - - - Gets the number of the dashes in the array. - Microsoft Docs: - - - - - Identifiers for properties of the Tile effect. - Microsoft Docs: - - - - The region of the image to be tiled. This property is a D2D1_VECTOR_4F defined as: (left, top, right, bottom). The units are in DIPs. - - -The type is D2D1_VECTOR_4F. - -The default is {0.0f, 0.0f, 100.0f, 100.0f}. - - - - Represents the backing store required to render a layer. - Microsoft Docs: - - - - - Creates an effect for the specified class ID. - Microsoft Docs: - The class ID of the effect to create. See Built-in Effects for a list of effect IDs. - When this method returns, contains the address of a pointer to a new effect. - - - - - Creates a path geometry object representing the path data. - Microsoft Docs: - Fill mode for the path geometry object. - On completion, pathGeometry will contain a point to the created ID2D1PathGeometry1 object. - - - - - Connects a transform node inside the graph to the corresponding effect input of the encapsulating effect. - Microsoft Docs: - The effect input to which the transform node will be bound. - The node to which the connection will be made. - The node input that will be connected. - - - - - Specifies the color channel the Displacement map effectextracts the intensity from and uses it to spatially displace the image in the X or Y direction. - Microsoft Docs: - - - - The effect extracts the intensity output from the red channel. - - - The effect extracts the intensity output from the green channel. - - - The effect extracts the intensity output from the blue channel. - - - The effect extracts the intensity output from the alpha channel. - - - - Draws the specified glyphs. - Microsoft Docs: - The origin, in device-independent pixels, of the glyphs' baseline. - The glyphs to render. - The brush used to paint the specified glyphs. - A value that indicates how glyph metrics are used to measure text when it is formatted. The default value is DWRITE_MEASURING_MODE_NATURAL. - - - - - Returns the size, in device-dependent units (pixels), of the bitmap. - Microsoft Docs: - - - - - Sets whether the output of the specified transform is cached. - Microsoft Docs: - TRUE if the output should be cached; otherwise, FALSE. - - - - - Returns the world bounds of a given gradient mesh. - Microsoft Docs: - The gradient mesh whose world bounds will be calculated. - When this method returns, contains a pointer to the bounds of the gradient mesh, in device independent pixels (DIPs). - - - - - Identifiers for properties of the Scale effect. - Microsoft Docs: - - - - The scale amount in the X and Y direction as a ratio of the output size to the input size. - - -This property a D2D1_VECTOR_2F defined as: (X scale, Y scale). - The scale amounts are FLOAT, unitless, and must be positive or 0. - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The image scaling center point. This property is a D2D1_VECTOR_2F defined as: (point X, point Y). The units are in DIPs. - - -Use the center point property to scale around a point other than the upper-left corner. - -The type is D2D1_VECTOR_2F. - -The default value is {0.0f, 0.0f}. - - - The interpolation mode the effect uses to scale the image. There are 6 scale modes that range in quality and speed. - - -The type is D2D1_SCALE_INTERPOLATION_MODE. - -The default value is D2D1_SCALE_INTERPOLATION_MODE_LINEAR. - - - The mode used to calculate the border of the image, soft or hard. - - -The type is D2D1_BORDER_MODE. - -The default value is D2D1_BORDER_MODE_SOFT. - - - In the high quality cubic interpolation mode, the sharpness level of the scaling filter as a float between 0 and 1. The values are unitless. - You can use sharpness to adjust the quality of an image when you scale the image down. - - -The sharpness factor affects the shape of the kernel. The higher the sharpness factor, the smaller the kernel. - -
Note  This property affects only the high quality cubic interpolation mode.
-
 
-The type is FLOAT. - -The default value is 0.0f.
-
- - - Defines constants that specify a value for the D2D1_HDRTONEMAP_PROP_DISPLAY_MODE property of the HDR Tone Map effect. - Microsoft Docs: - - - - Specifies that the tone mapper algorithm be optimized for best appearance on a standard dynamic range (SDR) display. - - - Specifies that the tone mapper algorithm be optimized for best appearance on a high dynamic range (HDR) display. - - - - Retrieves the number of segments in the path geometry. - Microsoft Docs: - A pointer that receives the number of segments in the path geometry when this method returns. You must allocate storage for this parameter. - - - - - Describes whether a window is occluded. - Microsoft Docs: - - - - The window is not occluded. - - - The window is occluded. - - - - Indicates whether a segment should be stroked and whether the join between this segment and the previous one should be smooth. This enumeration allows a bitwise combination of its member values. - Microsoft Docs: - - - - The segment is joined as specified by the ID2D1StrokeStyle interface, and it is stroked. - - - The segment is not stroked. - - - The segment is always joined with the one preceding it using a round line join, regardless of which D2D1_LINE_JOINenumeration is specified by the ID2D1StrokeStyle interface. If this segment is the first segment and the figure is closed, a round line join is used to connect the closing segment with the first segment. If the figure is not closed, this setting has no effect on the first segment of the figure. If ID2D1SimplifiedGeometrySink::SetSegmentFlags is called just before ID2D1SimplifiedGeometrySink::EndFigure, the join between the closing segment and the last explicitly specified segment is affected. - - - - This interface performs all the same functions as the existing ID2D1CommandSink3 interface. It also enables access to the new primitive blend mode, MAX, through the SetPrimitiveBlend2 method. - Microsoft Docs: - - - - - Sets the compute shader to the given shader resource. The resource must be loaded before this call is made. - Microsoft Docs: - The GUID of the shader. - - - - - Specifies how a bitmap can be used. - Microsoft Docs: - - - - The bitmap is created with default properties. - - - The bitmap can be used as a device context target. - - - The bitmap cannot be used as an input. - - - The bitmap can be read from the CPU. - - - The bitmap works with ID2D1GdiInteropRenderTarget::GetDC. - -
Note  This flag is not available in Windows Store apps.
-
 
-
- - - Returns the input rectangles that are required to be supplied by the caller to produce the given output rectangle. - Microsoft Docs: - The image whose output is being rendered. - The portion of the output image whose inputs are being inspected. - A list of the inputs whos rectangles are being queried. - The input rectangles returned to the caller. - The number of inputs. - - - - - Specifies additional aspects of how a sprite batch is to be drawn, as part of a call to ID2D1DeviceContext3::DrawSpriteBatch. - Microsoft Docs: - - - - Default value. No special drawing configuration. This option yields the best drawing performance. - - - Interpolation of bitmap pixels will be clamped to the sprite’s source rectangle. - If the sub-images in your source bitmap have no pixels separating them, then you may see color bleeding when drawing them with D2D1_SPRITE_OPTIONS_NONE. - In that case, consider adding borders between them with your sprite-packing tool, or use this option. - Note that drawing sprites with this option enabled is slower than using D2D1_SPRITE_OPTIONS_NONE. - - - - Maps the provided data into user memory. - Microsoft Docs: - When this method returns, contains the address of a pointer to the available buffer. - The desired size of the buffer. - - - - - Specifies a value for the SVG stroke-linejoin property. - Microsoft Docs: - - - - The property is set to SVG's 'bevel' value. - - - The property is set to SVG's 'miter' value. Note that this is equivalent to D2D1_LINE_JOIN_MITER_OR_BEVEL, not D2D1_LINE_JOIN_MITER. - - - The property is set to SVG's 'round' value. - - - - Updates the specific resource texture inside the specific range or box using the supplied data. - Microsoft Docs: - The "left" extent of the updates if specified; if NULL, the entire texture is updated. - The "right" extent of the updates if specified; if NULL, the entire texture is updated. - The stride to advance through the input data, according to dimension. - The number of dimensions in the resource texture. This must match the number used to load the texture. - The data to be placed into the resource texture. - The size of the data buffer to be used to update the resource texture. - - - - - Allows a caller to control the output precision and channel-depth of the transform in which the render information is encapsulated. - Microsoft Docs: - The type of buffer that should be used as an output from this transform. - The number of channels that will be used on the output buffer. - - - - - Specifies the indices of the system properties present on the ID2D1Properties interface for an ID2D1Effect. - Microsoft Docs: - - - - The CLSID of the effect. - - - The name of the effect. - - - The author of the effect. - - - The category of the effect. - - - The description of the effect. - - - The names of the effect's inputs. - - - The output of the effect should be cached. - - - The buffer precision of the effect output. - - - The minimum number of inputs supported by the effect. - - - The maximum number of inputs supported by the effect. - - - - Returns the class IDs of the currently registered effects and global effects on this factory. - Microsoft Docs: - When this method returns, contains an array of effects. NULL if no effects are retrieved. - The capacity of the effects array. - When this method returns, contains the number of effects copied into effects. - When this method returns, contains the number of effects currently registered in the system. - - - - - Retrieves the color of the solid color brush. - Microsoft Docs: - - - - - Indicates the type of information provided by the Direct2D Debug Layer. - Microsoft Docs: - - - - Direct2D does not produce any debugging output. - - - Direct2D sends error messages to the debug layer. - - - Direct2D sends error messages and warnings to the debug layer. - - - Direct2D sends error messages, warnings, and additional diagnostic information that can help improve performance to the debug layer. - - - - Values for the D2D1_STRAIGHTEN_PROP_SCALE_MODE property of the Straighten effect. - Microsoft Docs: - - - - Indicates nearest neighbor interpolation should be used. - - - Indicates linear interpolation should be used. - - - Indicates cubic interpolation should be used. - - - Indicates multi-sample linear interpolation should be used. - - - Indicates anisotropic filtering should be used. - - - - Paints an area with a solid color. - Microsoft Docs: - - - - - Represents all SVG preserveAspectRatio settings. - Microsoft Docs: - - - - Sets the 'defer' portion of the preserveAspectRatio settings. This field only has an effect on an 'image' element that references another SVG document. As - this is not currently supported, the field has no impact on rendering. - - - Sets the align portion of the preserveAspectRatio settings. - - - Sets the meetOrSlice portion of the preserveAspectRatio settings. - - - - Gets the maximum size, in device-dependent units (pixels), of any one bitmap dimension supported by the render target. - Microsoft Docs: - - - - - Represents a Direct2D drawing resource. - Microsoft Docs: - - - - - Unmaps the vertex buffer. - Microsoft Docs: - - - - - Sets the priority of Direct2D rendering operations performed on any device context associated with the device. - Microsoft Docs: - The desired rendering priority for the device and associated contexts. - - - - - Represents a graph of transform nodes. - Microsoft Docs: - - - - - Retrieves the pixel format and alpha mode of the render target. - Microsoft Docs: - - - - - Creates a color context by loading it from the specified filename. The profile bytes are the contents of the file specified by filename. - Microsoft Docs: - The path to the file containing the profile bytes to initialize the color context with. - When this method returns, contains the address of a pointer to a new color context. - - - - - Describes the stroke that outlines a shape. - Microsoft Docs: - - - - The cap to use at the start of each open figure. - - - The cap to use at the end of each open figure. - - - The cap to use at the start and end of each dash. - - - The line join to use. - - - The limit beyond which miters are either clamped or converted to bevels. - - - The type of dash to use. - - - The location of the first dash, relative to the start of the figure. - - - The rule that determines what render target properties affect the nib of the stroke. - - - - Copies the gradient stops from the collection into an array of D2D1_GRADIENT_STOP structures. - Microsoft Docs: - A pointer to a one-dimensional array of D2D1_GRADIENT_STOP structures. When this method returns, the array contains copies of the collection's gradient stops. You must allocate the memory for this array. - A value indicating the number of gradient stops to copy. If the value is less than the number of gradient stops in the collection, the remaining gradient stops are omitted. If the value is larger than the number of gradient stops in the collection, the extra gradient stops are set to NULL. To obtain the number of gradient stops in the collection, use the GetGradientStopCount method. - - - - - Represents a device-dependent representation of a gradient mesh composed of patches. Use the ID2D1DeviceContext2::CreateGradientMesh method to create an instance of ID2D1GradientMesh. - Microsoft Docs: - - - - - Sets the interpolation mode for the brush. - Microsoft Docs: - The mode to use. - - - - - Represents a single continuous stroke of variable-width ink, as defined by a series of Bezier segments and widths. - Microsoft Docs: - - - - - Sets the extend mode in the y direction. - Microsoft Docs: - The extend mode in the y direction. - - - - - Retrieves the source geometry of this transformed geometry object. - Microsoft Docs: - When this method returns, contains a pointer to a pointer to the source geometry for this transformed geometry object. This parameter is passed uninitialized. - - - - - Identifiers for properties of the Gamma transfer effect. - Microsoft Docs: - - - - The amplitude of the gamma transfer function for the Red channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The exponent of the gamma transfer function for the Red channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The offset of the gamma transfer function for the Red channel. - - -The type is FLOAT. - -The default value is 0.0f. - - - If you set this to TRUE it does not apply the transfer function to the Red channel. An identity transfer function is used. - If you set this to FALSE it applies the gamma transfer function to the Red channel. - - -The type is BOOL. - -The default value is FALSE. - - - The amplitude of the gamma transfer function for the Green channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The exponent of the gamma transfer function for the Green channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The offset of the gamma transfer function for the Green channel. - - -The type is FLOAT. - -The default value is 0.0f. - - - If you set this to TRUE it does not apply the transfer function to the Green channel. An identity transfer function is used. - If you set this to FALSE it applies the gamma transfer function to the Green channel. - - -The type is BOOL. - -The default value is FALSE. - - - The amplitude of the gamma transfer function for the Blue channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The exponent of the gamma transfer function for the Blue channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The offset of the gamma transfer function for the Blue channel. - - -The type is FLOAT. - -The default value is 0.0f. - - - If you set this to TRUE it does not apply the transfer function to the Blue channel. An identity transfer function is used. - If you set this to FALSE it applies the gamma transfer function to the Blue channel. - - -The type is BOOL. - -The default value is FALSE. - - - The amplitude of the gamma transfer function for the Alpha channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The exponent of the gamma transfer function for the Alpha channel. - - -The type is FLOAT. - -The default value is 1.0f. - - - The offset of the gamma transfer function for the Alpha channel. - - -The type is FLOAT. - -The default value is 0.0f. - - - If you set this to TRUE it does not apply the transfer function to the Alpha channel. An identity transfer function is used. - If you set this to FALSE it applies the gamma transfer function to the Alpha channel. - - -The type is BOOL. - -The default value is FALSE. - - - Whether the effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. - The effect clamps the values before it premultiplies the alpha. - - -If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, - but other effects and the output surface may clamp the values if they are not of high enough precision. - - -The type is BOOL. - -The default value is FALSE. - - - - Gets the output image from the effect. - Microsoft Docs: - When this method returns, contains the address of a pointer to the output image for the effect. - - - - - Represents an SVG document. - Microsoft Docs: - - - - - Opens the mesh for population. - Microsoft Docs: - When this method returns, contains a pointer to a pointer to an ID2D1TessellationSink that is used to populate the mesh. This parameter is passed uninitialized. - - - - - Retrieves an image of the SVG glyph from the color glyph cache. - Microsoft Docs: - Origin of the glyph. - Reference to a font face which contains font face type, appropriate file references, face identification data and various font data such as metrics, names and glyph outlines. - The specified font size affects the output - glyphTransform, causing it to properly scale the glyph. - Index of the glyph to retrieve. - If true, specifies that glyphs are rotated 90 degrees to the left and vertical metrics are used. Vertical writing is achieved by specifying isSideways as true and rotating the entire run 90 degrees to the right via a rotate transform. - The transform to apply to the image. - Describes how the area is painted. - The values for context-fill, context-stroke, and context-value that are used when rendering SVG glyphs. - The index used to select a color palette within a color font. - Note that this not the same as the paletteIndex in the DWRITE_COLOR_GLYPH_RUN struct, which is not relevant for SVG glyphs. - Output transform, which transforms from the glyph's space to the same output space as the worldTransform. - This includes the input glyphOrigin, the glyph's offset from the glyphOrigin, and any other required transformations. - On completion, contains the retrieved glyph image. - - - - - Creates and returns a bounds adjustment transform. - Microsoft Docs: - The initial output rectangle for the bounds adjustment transform. - The returned bounds adjustment transform. - - - - - Creates a new device context with no initially assigned target. - Microsoft Docs: - Options for creating the device context. - The created device context. - - - - - Represents a sequence of commands that can be recorded and played back. - Microsoft Docs: - - - - - Represents the set of transforms implemented by the effect-rendering system, which provides fixed-functionality. - Microsoft Docs: - - - - - Specifies the indices of the system sub-properties that may be present in any property. - Microsoft Docs: - - - - The name for the parent property. - - - A Boolean indicating whether the parent property is writeable. - - - The minimum value that can be set to the parent property. - - - The maximum value that can be set to the parent property. - - - The default value of the parent property. - - - An array of name/index pairs that indicate the possible values that can be set to the parent property. - - - An index sub-property used by the elements of the D2D1_SUBPROPERTY_FIELDS array. - - - - Contains the content bounds, mask information, opacity settings, and other options for a layer resource. - Microsoft Docs: - - - - The content bounds of the layer. Content outside these bounds is not guaranteed to render. - - - The geometric mask specifies the area of the layer that is composited into the render target. - - - A value that specifies the antialiasing mode for the geometricMask. - - - A value that specifies the transform that is applied to the geometric mask when composing the layer. - - - An opacity value that is applied uniformly to all resources in the layer when compositing to the target. - - - A brush that is used to modify the opacity of the layer. The brush -is mapped to the layer, and the alpha channel of each mapped brush pixel is multiplied against the corresponding layer pixel. - - - A value that specifies whether the layer intends to render text with ClearType antialiasing. - - - - This finds the given vertex buffer if it has already been created with ID2D1EffectContext::CreateVertexBuffer with the same GUID. - Microsoft Docs: - The unique id that identifies the vertex buffer. - The returned vertex buffer that can be used as a resource in a Direct2D effect. - - - - - The creation properties for a ID2D1PrintControl object. - Microsoft Docs: - - - - The mode to use for subsetting fonts for printing, defaults to D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT. - - - DPI for rasterization of all unsupported Direct2D commands or options, defaults to 150.0. - - - Color space for vector graphics, defaults to D2D1_COLOR_SPACE_SRGB. - - - - Defines the type of SVG string attribute to set or get. - Microsoft Docs: - - - - The attribute is a string in the same form as it would appear in the SVG XML. - Note that when getting values of this type, the value returned may not exactly match the value that was set. Instead, the output value is a normalized version - of the value. For example, an input color of 'red' may be output as '#FF0000'. - - - The attribute is an element ID. - - - - Creates a new ID2D1DeviceContext2 from a Direct2D device. - Microsoft Docs: - The options to be applied to the created device context. - When this method returns, contains the address of a pointer to the new device context. - - - - - Creates an element from a tag name. The element is appended to the list of children. - Microsoft Docs: - The tag name of the new child. An empty string is interpreted to be a text content element. - The new child element. - - - - - Specifies additional features supportable by a compatible render target when it is created. This enumeration allows a bitwise combination of its member values. - Microsoft Docs: - - - - The render target supports no additional features. - - - The render target supports interoperability with the Windows Graphics Device Interface (GDI). - - - - Indicates that drawing with the device context retrieved using the GetDC method is finished. - Microsoft Docs: - The modified region of the device context, or NULL to specify the entire render target. - - - - - Indicates a mesh to be filled by the command sink. - Microsoft Docs: - The mesh object to be filled. - The brush with which to fill the mesh. - - - - - Represents filtering modes that a transform may select to use on input textures. - Microsoft Docs: - - - - Use point sampling for minification, magnification, and mip-level sampling. - - - Use point sampling for minification and magnification; use linear interpolation for mip-level sampling. - - - Use point sampling for minification; use linear interpolation for magnification; use point sampling for mip-level sampling. - - - Use point sampling for minification; use linear interpolation for magnification and mip-level sampling. - - - Use linear interpolation for minification; use point sampling for magnification and mip-level sampling. - - - Use linear interpolation for minification; use point sampling for magnification; use linear interpolation for mip-level sampling. - - - Use linear interpolation for minification and magnification; use point sampling for mip-level sampling. - - - Use linear interpolation for minification, magnification, and mip-level sampling. - - - Use anisotropic interpolation for minification, magnification, and mip-level sampling. - - - - Sets the pre-transform nib shape for this style. - Microsoft Docs: - The pre-transform nib shape to use in this style. - - - - - This indicates that a portion of an effect's input is invalid. This method can be called many times. - Microsoft Docs: - The effect to invalidate. - The input index. - The rect to invalidate. - - - - - Returns whether the Direct2D factory was created with the D2D1_FACTORY_TYPE_MULTI_THREADED flag. - Microsoft Docs: - - - - - Creates a transform that extends its input infinitely in every direction based on the passed in extend mode. - Microsoft Docs: - The extend mode in the X-axis direction. - The extend mode in the Y-axis direction. - The returned transform. - - - - - Tries to invert the specified matrix. - Microsoft Docs: - The matrix to invert. - - - - - Specifies how the intersecting areas of geometries or figures are combined to form the area of the composite geometry. - Microsoft Docs: - - - - Determines whether a point is in the fill region by drawing a ray from that point to infinity in any direction, and then counting the number of path segments within the given shape that the ray crosses. If this number is odd, the point is in the fill region; if even, the point is outside the fill region. - - - Determines whether a point is in the fill region of the path by drawing a ray from that point to infinity in any direction, and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left, as long as left and right are seen from the perspective of the ray. After counting the crossings, if the result is zero, then the point is outside the path. Otherwise, it is inside the path. - - - - Forces the factory to refresh any system defaults that it might have changed since factory creation. - Microsoft Docs: - - - - - Represents a point, radius pair that makes up part of a D2D1_INK_BEZIER_SEGMENT. - Microsoft Docs: - - - - The x-coordinate of the point. - - - The y-coordinate of the point. - - - The radius of this point. Corresponds to the width of the ink stroke at this point in the stroke. - - - - Restores access to resources that were previously offered by calling OfferResources. - Microsoft Docs: - Returns with TRUE if the corresponding resource’s content was discarded and is now undefined, or FALSE if the corresponding resource’s old content is still intact. - The caller can pass in NULL, if the caller intends to fill the resources with new content regardless of whether the old content was discarded. - - - - - Gets the transform applied to this brush. - Microsoft Docs: - The transform applied to this brush. - - - - - Specifies how a device context is initialized for GDI rendering when it is retrieved from the render target. - Microsoft Docs: - - - - The current contents of the render target are copied to the device context when it is initialized. - - - The device context is cleared to transparent black when it is initialized. - - - - Retrieves the current rendering priority of the device. - Microsoft Docs: - - - - - Specifies options that can be applied when a layer resource is applied to create a layer. - Microsoft Docs: - - - - The text in this layer does not use ClearType antialiasing. - - - The layer renders correctly for ClearType text. If the render target is set to ClearType, the layer continues to render ClearType. If the render target is 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. - - - - Draw a metafile to the device context. - Microsoft Docs: - The metafile to draw. - The offset from the upper left corner of the render target. - - - - - Represents a complex shape that may be composed of arcs, curves, and lines. - Microsoft Docs: - - - - - Identifiers for properties of the Opacity metadata effect. - Microsoft Docs: - - - - The portion of the source image that is opaque. The default is the entire input image. - - -The type is D2D1_VECTOR_4F. - -The default is {-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX}. - - - - Specifies the offset of the gradient origin relative to the gradient ellipse's center. - Microsoft Docs: - The offset of the gradient origin from the center of the gradient ellipse. - - - - - Provides an estimated hint of shader execution cost to D2D. - Microsoft Docs: - An approximate instruction count of the associated shader. - - - - - Create a mesh that uses triangles to describe a shape. - Microsoft Docs: - When this method returns, contains a pointer to a pointer to the new mesh. - - - - - Gets the extend mode in the y direction. - Microsoft Docs: - - - - - Identifiers for properties of the Crop effect. - Microsoft Docs: - - - - The region to be cropped specified as a vector in the form (left, top, width, height). Units are in DIPs. - - -
Note  The rectangle will be truncated if it overlaps the edge boundaries of the input image.
-
 
-Type is D2D1_VECTOR_4F - - -Default value is {-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX}
-
- - Indicates how the effect handles the crop rectangle falling on fractional pixel coordinates. - - -Type is D2D1_BORDER_MODE. - -Default value is D2D1_BORDER_MODE_SOFT. - - - - Ends drawing operations on the render target and indicates the current error state and associated tags. - Microsoft Docs: - When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. - When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. - - - - - Specifies the threading mode used while simultaneously creating the device, factory, and device context. - Microsoft Docs: - - - - Resources may only be invoked serially. Device context state is not protected from multi-threaded access. - - - Resources may be invoked from multiple threads. Resources use interlocked reference counting and their state is protected. - - - - Identifiers for properties of the Point-diffuse lighting effect. - Microsoft Docs: - - - - The light position of the point light source. The property is a D2D1_VECTOR_3F defined as (x, y, z). The units are in device-independent pixels (DIPs) and are unbounded. - - -The type is D2D1_VECTOR_3F. - -The default value is {0.0f, 0.0f, 0.0f}. - - - The ratio of diffuse reflection to amount of incoming light. This property must be between 0 and 10,000 and is unitless. - - -The type is FLOAT. - -The default value is 1.0f. - - - The scale factor in the Z direction. The surface scale is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The color of the incoming light. This property is exposed as a Vector 3 – (R, G, B) and used to compute LR, LG, LB. - - -The type is D2D1_VECTOR_3F. - -The default value is {1.0f, 1.0f, 1.0f}. - - - The size of an element in the Sobel kernel used to generate the surface normal in the X and Y direction. This property maps to the dx and dy values in the Sobel gradient. - This property is a D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) and is defined in (DIPs/Kernel Unit). - The effect uses bilinear interpolation to scale the bitmap to match size of kernel elements. - - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_POINTDIFFUSE_SCALE_MODE. - -The default value is D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR. - - - - Draws a bitmap to the render target. - Microsoft Docs: - The bitmap to draw. - The destination rectangle. The default is the size of the bitmap and the location is the upper left corner of the render target. - The opacity of the bitmap. - The interpolation mode to use. - An optional source rectangle. - An optional perspective transform. - - - - - Describes a point on a path geometry. - Microsoft Docs: - - - - The end point after walking the path. - - - A unit vector indicating the tangent point. - - - The index of the segment on which point resides. This index is global to the entire path, not just to a particular figure. - - - The index of the figure on which point resides. - - - The length of the section of the path stretching from the start of the path to the start of endSegment. - - - - Identifiers for properties of the Posterize effect. - Microsoft Docs: - - - - The D2D1_POSTERIZE_PROP_RED_VALUE_COUNT property is an integer value specifying how many evenly spaced steps to divide the red channel range of 0.0 to 1.0 into. - For example, a value of 4 generates a table with 4 steps, [0.0, 0.33, 0.67, 1.0]. The allowed range for this property is 2 to 16. The default value is 4. - - - The D2D1_POSTERIZE_PROP_GREEN_VALUE_COUNT property is an integer value specifying how many evenly spaced steps to divide the green channel range of 0.0 to 1.0 into. - For example, a value of 4 generates a table with 4 steps, [0.0, 0.33, 0.67, 1.0]. The allowed range for this property is 2 to 16. The default value is 4. - - - The D2D1_POSTERIZE_PROP_BLUE_VALUE_COUNT property is an integer value specifying how many evenly spaced steps to divide the blue channel range of 0.0 to 1.0 into. - For example, a value of 4 generates a table with 4 steps, [0.0, 0.33, 0.67, 1.0]. The allowed range for this property is 2 to 16. The default value is 4. - - - - Clears all of the rendering resources used by Direct2D. - Microsoft Docs: - Discards only resources that haven't been used for greater than the specified time in milliseconds. The default is 0 milliseconds. - - - - - Sets the given input effect by index. - Microsoft Docs: - The index of the input to set. - The input effect to set. - Whether to invalidate the graph at the location of the effect input - - - - - Creates a line segment between the current point and the specified end point and adds it to the geometry sink. - Microsoft Docs: - The end point of the line to draw. - - - - - Gets the interpolation method used when the brush bitmap is scaled or rotated. - Microsoft Docs: - - - - - Retrieves the ending coordinates of the linear gradient. - Microsoft Docs: - - - - - Identifiers for properties of the Spot-specular lighting effect. - Microsoft Docs: - - - - The light position of the point light source. The property is a D2D1_VECTOR_3F defined as (x, y, z). - The units are in device-independent pixels (DIPs) and are unbounded. - - -The type is D2D1_VECTOR_3F. - -The default value is {0.0f, 0.0f, 0.0f}. - - - Where the spot light is focused. The property is exposed as a D2D1_VECTOR_3F with – (x, y, z). - The units are in DIPs and the values are unbounded. - - -The type is D2D1_VECTOR_3F. - -The default value is {0.0f, 0.0f, 0.0f}. - - - The focus of the spot light. This property is unitless and is defined between 0 and 200. - - -The type is FLOAT. - -The default value is 1.0f. - - - The cone angle that restricts the region where the light is projected. No light is projected outside the cone. - The limiting cone angle is the angle between the spot light axis (the axis between the LightPosition and PointsAt properties) and the spot light cone. - This property is defined in degrees and must be between 0 to 90 degrees. - - -The type is FLOAT. - -The default value is 90.0f. - - - The exponent for the specular term in the Phong lighting equation. A larger value corresponds to a more reflective surface. This value is unitless and must be between 1.0 and 128. - - -The type is FLOAT. - -The default value is 1.0f. - - - The ratio of specular reflection to the incoming light. The value is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The scale factor in the Z direction for generating a height map. The value is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The color of the incoming light. This property is exposed as a Vector 3 – (R, G, B) and used to compute LR, LG, LB. - - -The type is D2D1_VECTOR_3F. - -The default value is {1.0f, 1.0f, 1.0f}. - - - The size of an element in the Sobel kernel used to generate the surface normal in the X and Y direction. This property maps to the dx and dy values in the Sobel gradient. - This property is a D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) and is defined in (DIPs/Kernel Unit). - The effect uses bilinear interpolation to scale the bitmap to match size of kernel elements. - - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_SPOTSPECULAR_SCALE_MODE. - -The default value is D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. - - - - Represents a set of run-time bindable and discoverable properties that allow a data-driven application to modify the state of a Direct2D effect. - Microsoft Docs: - - - - - Indicates more detailed text rendering parameters. - Microsoft Docs: - The parameters to use for text rendering. - - - - - Returns a boolean indicating wether this element represents text content. - Microsoft Docs: - - - - - Represents a resource domain whose objects and device contexts can be used together. This interface performs all the same functions as the ID2D1Device4 interface. It also enables the creation of ID2D1DeviceContext5 objects. - Microsoft Docs: - - - - - Describes the sequence of dashes and gaps in a stroke. - Microsoft Docs: - - - - A solid line with no breaks. - - - A dash followed by a gap of equal length. The dash and the gap are each twice as long as the stroke thickness. - -The equivalent dash array for D2D1_DASH_STYLE_DASH is {2, 2}. - - - A dot followed by a longer gap. - -The equivalent dash array for D2D1_DASH_STYLE_DOT is {0, 2}. - - - A dash, followed by a gap, followed by a dot, followed by another gap. - -The equivalent dash array for D2D1_DASH_STYLE_DASH_DOT is {2, 2, 0, 2}. - - - A dash, followed by a gap, followed by a dot, followed by another gap, followed by another dot, followed by another gap. - -The equivalent dash array for D2D1_DASH_STYLE_DASH_DOT_DOT is {2, 2, 0, 2, 0, 2}. - - - The dash pattern is specified by an array of floating-point values. - - - - Allows the application to change the number of inputs to an effect. - Microsoft Docs: - The number of inputs to the effect. - - - - - Defines constants that identify the top level properties of the White Level Adjustment effect. - Microsoft Docs: - - - - Identifies the InputWhiteLevel property of the effect. The property is of type FLOAT, and is specified in nits. - - - Identifies the OutputWhiteLevel property of the effect. The property is of type FLOAT, and is specified in nits. - - - - Identifiers for properties of the Chroma-key effect. - Microsoft Docs: - - - - The D2D1_CHROMAKEY_PROP_COLOR property is a vector4 value indicating the color that should be converted to alpha. The default color is black. - - - The D2D1_CHROMAKEY_PROP_TOLERANCE property is a float value indicating the tolerance for matching the color specified in the D2D1_CHROMAKEY_PROP_COLOR property. - The allowed range is 0.0 to 1.0. The default value is 0.1. - - - The D2D1_CHROMAKEY_PROP_INVERT_ALPHA property is a boolean value indicating whether the alpha values should be inverted. The default value if False. - - - The D2D1_CHROMAKEY_PROP_FEATHER property is a boolean value whether the edges of the output should be softened in the alpha channel. - When set to False, the alpha output by the effect is 1-bit: either fully opaque or fully transparent. Setting to True results in a softening of edges in the alpha channel of the Chroma Key output. - The default value is False. - - - - Copies the dash pattern to the specified array. - Microsoft Docs: - A pointer to an array that will receive the dash pattern. The array must be able to contain at least as many elements as specified by dashesCount. You must allocate storage for this array. - The number of dashes to copy. If this value is less than the number of dashes in the stroke style's dashes array, the returned dashes are truncated to dashesCount. If this value is greater than the number of dashes in the stroke style's dashes array, the extra dashes are set to 0.0f. To obtain the actual number of dashes in the stroke style's dashes array, use the GetDashesCount method. - - - - - Retrieves the y-radius of the gradient ellipse. - Microsoft Docs: - - - - - Returns the length of a 3 dimensional vector. - Microsoft Docs: - The x value of the vector. - The y value of the vector. - The z value of the vector. - - - - - Identifiers for properties of the Sharpen effect. - Microsoft Docs: - - - - The D2D1_SHARPEN_PROP_SHARPNESS property is a float value indicating how much to sharpen the input image. The allowed range is 0.0 to 10.0. The default value is 0.0. - - - The D2D1_SHARPEN_PROP_THRESHOLD property is a float value. The allowed range is 0.0 to 1.0. The default value is 0.0. - - - - Identifiers for properties of the Turbulence effect. - Microsoft Docs: - - - - The coordinates where the turbulence output is generated. - - -The algorithm used to generate the Perlin noise is position dependent, so a different offset results in a different output. - This property is not bounded and the units are specified in DIPs. - - -
Note  The offset does not have the same effect as a translation because the noise function output is infinite and the function will wrap around the tile.
-
 
-The type is D2D1_VECTOR_2F. - - -The default value is {0.0f, 0.0f}.
-
- - The base frequencies in the X and Y direction. This property is a float and must be greater than 0. The units are specified in 1/DIPs. - - -A value of 1 (1/DIPs) for the base frequency results in the Perlin noise completing an entire cycle between two pixels. The ease interpolation for these pixels results in completely random pixels, since there is no correlation between the pixels. - -A value of 0.1(1/DIPs) for the base frequency, the Perlin noise function repeats every 10 DIPs. This results in correlation between pixels and the typical turbulence effect is visible. - -The type is D2D1_VECTOR_2F. - - -The default value is {0.01f, 0.01f}. - - - The number of octaves for the noise function. This property is a UINT32 and must be greater than 0. - - -The type is UINT32. - -The default value is 1. - - - The seed for the pseudo random generator. This property is unbounded. - - -The type is UINT32. - -The default value is 0. - - - The turbulence noise mode. This property can be either fractal sum or turbulence. Indicates whether to generate a bitmap based on Fractal Noise or the Turbulence function. - - -The type is D2D1_TURBULENCE_NOISE. - - -The default value is D2D1_TURBULENCE_NOISE_FRACTAL_SUM. - - - Turns stitching on or off. The base frequency is adjusted so that output bitmap can be stitched. This is useful if you want to tile multiple copies of the turbulence effect output. - - -True – The output bitmap can be tiled (using the tile effect) without the appearance of seams. The base frequency is adjusted so that output bitmap can be stitched. - -False – The base frequency is not adjusted, so seams may appear between tiles if the bitmap is tiled. - -The type is BOOL. - -The default value is FALSE. - - - - Contains the three vertices that describe a triangle. - Microsoft Docs: - - - - The first vertex of a triangle. - - - The second vertex of a triangle. - - - The third vertex of a triangle. - - - - Identifiers for properties of the Vignette effect. - Microsoft Docs: - - - - The D2D1_VIGNETTE_PROP_COLOR property is an RGB tripplet that specifies the color to fade the image's edges to. The default color is black. - - - The D2D1_VIGNETTE_PROP_TRANSITION_SIZE property is a float value that specifies the size of the vignette region as a percentage of the full image region. - A size of 0 means the unfaded region is the entire image, while a size of 1 means the faded region is the entire source image. - The allowed range is 0.0 to 1.0. The default value is 0.1. - - - The D2D1_VIGNETTE_PROP_STRENGTH property is a float value that specifies how much the vignette color bleeds in for a given transition size. - The allowed range is 0.0 to 1.0. The default value is 0.5. - - - - Specifies the units for an SVG length. - Microsoft Docs: - - - - The length is unitless. - - - The length is a percentage value. - - - - Describes how a render target behaves when it presents its content. This enumeration allows a bitwise combination of its member values. - Microsoft Docs: - - - - The render target waits until the display refreshes to present and discards the frame upon presenting. - - - The render target does not discard the frame upon presenting. - - - The render target does not wait until the display refreshes to present. - - - - Indicates the new default antialiasing mode for text. - Microsoft Docs: - The antialiasing mode for the text. - - - - - Creates a device-dependent representation of the stroke of a geometry that can be subsequently rendered. - Microsoft Docs: - The geometry to realize. - The flattening tolerance to use when converting Beziers to line segments. This parameter shares the same units as the coordinates of the geometry. - The width of the stroke. This parameter shares the same units as the coordinates of the geometry. - The stroke style (optional). - When this method returns, contains the address of a pointer to a new geometry realization object. - - - - - Renders the given ink object using the given brush and ink style. - Microsoft Docs: - The ink object to be rendered. - The brush with which to render the ink object. - The ink style to use when rendering the ink object. - - - - - Represents a composite geometry, composed of other ID2D1Geometry objects. - Microsoft Docs: - - - - - Defines the general pen tip shape and the transform used in an ID2D1InkStyle object. - Microsoft Docs: - - - - The pre-transform shape of the nib (pen tip) used to draw a given ink object. - - - The transform applied to the nib. Note that the translation components of the transform matrix are ignored for the purposes of rendering. - - - - Indentifiers for properties of the RGB to Hue effect. - Microsoft Docs: - - - - The D2D1_RGBTOHUE_PROP_OUTPUT_COLOR_SPACE property is an enumeration value which indicates the color space to convert to. - The default value for the property is D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_HUE_SATURATION_VALUE. - See the D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE enumeration for more information. - - - - Retrieves the type of joint used at the vertices of a shape's outline. - Microsoft Docs: - - - - - Represents a tensor patch with 16 control points, 4 corner colors, and boundary flags. An ID2D1GradientMesh is made up of 1 or more gradient mesh patches. Use the GradientMeshPatch function or the GradientMeshPatchFromCoonsPatch function to create one. - Microsoft Docs: - - - - The coordinate-space location of the control point in column 0 and row 0 of the tensor grid. - - - The coordinate-space location of the control point in column 0 and row 1 of the tensor grid. - - - The coordinate-space location of the control point in column 0 and row 2 of the tensor grid. - - - The coordinate-space location of the control point in column 0 and row 3 of the tensor grid. - - - The coordinate-space location of the control point in column 1 and row 0 of the tensor grid. - - - The coordinate-space location of the control point in column 1 and row 1 of the tensor grid. - - - The coordinate-space location of the control point in column 1 and row 2 of the tensor grid. - - - The coordinate-space location of the control point in column 1 and row 3 of the tensor grid. - - - The coordinate-space location of the control point in column 2 and row 0 of the tensor grid. - - - The coordinate-space location of the control point in column 2 and row 1 of the tensor grid. - - - The coordinate-space location of the control point in column 2 and row 2 of the tensor grid. - - - The coordinate-space location of the control point in column 2 and row 3 of the tensor grid. - - - The coordinate-space location of the control point in column 3 and row 0 of the tensor grid. - - - The coordinate-space location of the control point in column 3 and row 1 of the tensor grid. - - - The coordinate-space location of the control point in column 3 and row 2 of the tensor grid. - - - The coordinate-space location of the control point in column 3 and row 3 of the tensor grid. - - - The color associated with the control point in column 0 and row 0 of the tensor grid. - - - The color associated with the control point in column 0 and row 3 of the tensor grid. - - - The color associated with the control point in column 3 and row 0 of the tensor grid. - - - The color associated with the control point in column 3 and row 3 of the tensor grid. - - - Specifies how to render the top edge of the mesh. - - - Specifies how to render the left edge of the mesh. - - - Specifies how to render the bottom edge of the mesh. - - - Specifies how to render the right edge of the mesh. - - - - Gets the tag name. - Microsoft Docs: - The tag name. - Length of the value in the name argument. - - - - - Retrieves the color context type. - Microsoft Docs: - - - - - Sets the dots per inch (DPI) of the render target. - Microsoft Docs: - A value greater than or equal to zero that specifies the horizontal DPI of the render target. - A value greater than or equal to zero that specifies the vertical DPI of the render target. - - - - - Gets the previous sibling of the referenceChild element. - Microsoft Docs: - The referenceChild must be an immediate child of this element. - The output previousChild element will be non-null if the referenceChild has a previous sibling. If the referenceChild is the first child, the output is null. - - - - - Sets the input rectangles for this rendering pass into the transform. - Microsoft Docs: - The index of the input rectangle. - The invalid input rectangle. - The output rectangle to which the input rectangle must be mapped. - - - - - Describes flags that influence how the renderer interacts with a custom vertex shader. - Microsoft Docs: - - - - There were no changes. - - - The properties of the effect changed. - - - The context state changed. - - - The effect’s transform graph has changed. This happens only when an effect supports a variable input count. - - - - Registers an effect within the factory instance with the property XML specified as a string. - Microsoft Docs: - The identifier of the effect to be registered. - A list of the effect properties, types, and metadata. - An array of properties and methods. - -This binds a property by name to a particular method implemented by the effect author to handle the property. - The name must be found in the corresponding propertyXml. - The number of bindings in the binding array. - The static factory that is used to create the corresponding effect. - - - - - Contains the content bounds, mask information, opacity settings, and other options for a layer resource. - Microsoft Docs: - - - - The content bounds of the layer. Content outside these bounds is not guaranteed to render. - - - The geometric mask specifies the area of the layer that is composited into the render target. - - - A value that specifies the antialiasing mode for the geometricMask. - - - A value that specifies the transform that is applied to the geometric mask when composing the layer. - - - An opacity value that is applied uniformly to all resources in the layer when compositing to the target. - - - A brush that is used to modify the opacity of the layer. The brush -is mapped to the layer, and the alpha channel of each mapped brush pixel is multiplied against the corresponding layer pixel. - - - Additional options for the layer creation. - - - - Unmaps the bitmap from memory. - Microsoft Docs: - - - - - Creates an ID2D1Device3 object. - Microsoft Docs: - The IDXGIDevice object used when creating the ID2D1Device3. - The requested ID2D1Device3 object. - - - - - Gets the D2D1_ELLIPSE structure that describes this ellipse geometry. - Microsoft Docs: - When this method returns, contains the D2D1_ELLIPSE that describes the size and position of the ellipse. You must allocate storage for this parameter. - - - - - Gets the offset currently in the offset transform. - Microsoft Docs: - - - - - Copies the contents of the path geometry to the specified ID2D1GeometrySink. - Microsoft Docs: - The sink to which the path geometry's contents are copied. Modifying this sink does not change the contents of this path geometry. - - - - - Creates a new Direct2D device from the given IDXGIDevice. - Microsoft Docs: - The IDXGIDevice to create the Direct2D device from. - The created device. - - - - - Interface describing an SVG fill or stroke value. - Microsoft Docs: - - - - - This tests to see if the given shader is loaded. - Microsoft Docs: - The unique id that identifies the shader. - - - - - Removes an axis-aligned clip from the layer and clip stack. - Microsoft Docs: - - - - - Values for the D2D1_HUETORGB_PROP_INPUT_COLOR_SPACE property of the Hue to RGB effect. - Microsoft Docs: - - - - The effect converts from Hue Saturation Value (HSV) to RGB. - - - The effect converts from Hue Saturation Lightness (HSL) to RGB. - - - - Gets the color space of the input colors as well as the space in which gradient stops are interpolated. - Microsoft Docs: - - - - - Identifiers for the properties of the Brightness effect. - Microsoft Docs: - - - - The upper portion of the brightness transfer curve. The white point adjusts the appearance of the brighter portions of the image. - This property is for both the x value and the y value, in that order. Each of the values of this property are between 0 and 1, inclusive. - - -The type is D2D1_VECTOR_2F. - -The default value is (1.0f, 1.0f). - - - The lower portion of the brightness transfer curve. The black point adjusts the appearance of the darker portions of the image. - This property is for both the x value and the y value, in that order. Each of the values of this property are between 0 and 1, inclusive. - - -The type is D2D1_VECTOR_2F. - -The default value is (0.0f, 0.0f). - - - - Removes the given number of segments from the end of this ink object. - Microsoft Docs: - The number of segments to be removed from the end of this ink object. Note that segmentsCount must be less or equal to the number of segments in the ink object. - - - - - Describes the pixel format and dpi of a bitmap. - Microsoft Docs: - - - - The bitmap's pixel format and alpha mode. - - - The horizontal dpi of the bitmap. - - - The vertical dpi of the bitmap. - - - - The interpolation mode the Convolve matrix effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor mode. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Contains the gradient origin offset and the size and position of the gradient ellipse for an ID2D1RadialGradientBrush. - Microsoft Docs: - - - - In the brush's coordinate space, the center of the gradient ellipse. - - - In the brush's coordinate space, the offset of the gradient origin relative to the gradient ellipse's center. - - - In the brush's coordinate space, the x-radius of the gradient ellipse. - - - In the brush's coordinate space, the y-radius of the gradient ellipse. - - - - Paints an area with a radial gradient. - Microsoft Docs: - - - - - Describes how a render target is remoted and whether it should be GDI-compatible. This enumeration allows a bitwise combination of its member values. - Microsoft Docs: - - - - The render target attempts to use Direct3D command-stream remoting and uses bitmap remoting if stream remoting fails. The render target is not GDI-compatible. - - - The render target renders content locally and sends it to the terminal services client as a bitmap. - - - The render target can be used efficiently with GDI. - - - - Specifies how to render gradient mesh edges. - Microsoft Docs: - - - - Render this patch edge aliased. Use this value for the internal edges of your gradient mesh. - - - Render this patch edge antialiased. Use this value for the external (boundary) edges of your mesh. - - - Render this patch edge aliased and also slightly inflated. Use this for the internal edges of your gradient mesh when there could be t-junctions among patches. - Inflating the internal edges mitigates seams that can appear along those junctions. - - - - Creates a new Direct2D device context associated with a DXGI surface. - Microsoft Docs: - The DXGI surface the Direct2D device context is associated with. - The properties to apply to the Direct2D device context. - When this function returns, contains the address of a pointer to a Direct2D device context. - - - - - Returns the number of patches that make up this gradient mesh. - Microsoft Docs: - - - - - Establishes or changes the constant buffer data for this transform. - Microsoft Docs: - The data applied to the constant buffer. - The number of bytes of data in the constant buffer. - - - - - Values for the D2D1_RGBTOHUE_PROP_OUTPUT_COLOR_SPACE property of the RGB to Hue effect. - Microsoft Docs: - - - - The effect converts from RGB to Hue Saturation Value (HSV). - - - The effect converts from RGB to Hue Saturation Lightness (HSL). - - - - Instructs the effect-rendering system to offset an input bitmap without inserting a rendering pass. - Microsoft Docs: - - - - - Specifies the y-radius of the gradient ellipse, in the brush's coordinate space. - Microsoft Docs: - The y-radius of the gradient ellipse. This value is in the brush's coordinate space. - - - - - Sets the degree of opacity of this brush. - Microsoft Docs: - A value between zero and 1 that indicates the opacity of the brush. This value is a constant multiplier that linearly scales the alpha value of all pixels filled by the brush. The opacity values are clamped in the range 0–1 before they are multipled together. - - - - - Retrieves the geometry sink that is used to populate the path geometry with figures and segments. - Microsoft Docs: - When this method returns, geometrySink contains the address of a pointer to the geometry sink that is used to populate the path geometry with figures and segments. This parameter is passed uninitialized. - - - - - The interpolation mode the Point-diffuse lighting effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Initiates drawing on this render target. - Microsoft Docs: - - - - - Gets the color space of the color context. - Microsoft Docs: - - - - - Retrieves the number of sprites in this sprite batch. - Microsoft Docs: - - - - - Retrieves the ID2D1GradientStopCollection associated with this radial gradient brush object. - Microsoft Docs: - The ID2D1GradientStopCollection object associated with this linear gradient brush object. This parameter is passed uninitialized. - - - - - Specifies the blend operation on two color sources. - Microsoft Docs: - - - - Add source 1 and source 2. - - - Subtract source 1 from source 2. - - - Subtract source 2 from source 1. - - - Find the minimum of source 1 and source 2. - - - Find the maximum of source 1 and source 2. - - - A value guaranteed to be a DWORD. - - - - Represents the drawing state of a render target:\_the antialiasing mode, transform, tags, and text-rendering options. - Microsoft Docs: - - - - - Returns the tangent of an angle. - Microsoft Docs: - The angle to calculate the tangent for. - - - - - Sets the extend mode in the x direction. - Microsoft Docs: - The extend mode in the x direction. - - - - - Gets the index corresponding to the given property name. - Microsoft Docs: - The name of the property to retrieve. - - - - - Gets the element id which acts as the paint server. This id is used if the paint type is D2D1_SVG_PAINT_TYPE_URI. - Microsoft Docs: - The element id which acts as the paint server. - - - - - - Sets the render target's drawing state to that of the specified ID2D1DrawingStateBlock. - Microsoft Docs: - The new drawing state of the render target. - - - - - Creates a device-dependent representation of the fill of the geometry that can be subsequently rendered. - Microsoft Docs: - The geometry to realize. - The flattening tolerance to use when converting Beziers to line segments. This parameter shares the same units as the coordinates of the geometry. - When this method returns, contains the address of a pointer to a new geometry realization object. - - - - - Represents a CPU-based rasterization stage in the transform pipeline graph. - Microsoft Docs: - - - - - This interface performs all the same functions as the existing ID2D1CommandSink4 interface, plus it enables access to the BlendImage method. - Microsoft Docs: - - - - - Provides access to an device context that can accept GDI drawing commands. - Microsoft Docs: - - - - - Describes limitations to be applied to an imaging effect renderer. - Microsoft Docs: - - - - The buffer precision used by default if the buffer precision is not otherwise specified by the effect or by the transform. - - - The tile allocation size to be used by the imaging effect renderer. - - - - This is used to specify the quality of image scaling with ID2D1DeviceContext::DrawImage and with the 2D affine transform effect. - Microsoft Docs: - - - - Samples the nearest single point and uses that exact color. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Sets the extend mode on the y-axis. - Microsoft Docs: - The extend mode on the y-axis of the image. - - - - - Returns the interior points for a gradient mesh patch based on the points defining a Coons patch. - Microsoft Docs: - The coordinate-space location of the control point at position 0. - The coordinate-space location of the control point at position 1. - The coordinate-space location of the control point at position 2. - The coordinate-space location of the control point at position 3. - The coordinate-space location of the control point at position 4. - The coordinate-space location of the control point at position 5. - The coordinate-space location of the control point at position 6. - The coordinate-space location of the control point at position 7. - The coordinate-space location of the control point at position 8. - The coordinate-space location of the control point at position 9. - The coordinate-space location of the control point at position 10. - The coordinate-space location of the control point at position 11. - Returns the interior point for the gradient mesh corresponding to point11 in the D2D1_GRADIENT_MESH_PATCH structure. - Returns the interior point for the gradient mesh corresponding to point12 in the D2D1_GRADIENT_MESH_PATCH structure. - Returns the interior point for the gradient mesh corresponding to point21 in the D2D1_GRADIENT_MESH_PATCH structure. - Returns the interior point for the gradient mesh corresponding to point22 in the D2D1_GRADIENT_MESH_PATCH structure. - - - - - Creates an ID2D1PathGeometry1 object. - Microsoft Docs: - When this method returns, contains the address of a pointer to the newly created path geometry. - - - - - Specifies the antialiasing mode to use for subsequent text and glyph drawing operations. - Microsoft Docs: - The antialiasing mode to use for subsequent text and glyph drawing operations. - - - - - Returns the sine and cosine of an angle. - Microsoft Docs: - The angle to calculate. - The sine of the angle. - The cosine of the angle. - - - - - Specifies how the brush horizontally tiles those areas that extend past its bitmap. - Microsoft Docs: - A value that specifies how the brush horizontally tiles those areas that extend past its bitmap. - - - - - Retrieves the current desktop dots per inch (DPI). To refresh this value, call ReloadSystemMetrics. - Microsoft Docs: - When this method returns, contains the horizontal DPI of the desktop. You must allocate storage for this parameter. - When this method returns, contains the vertical DPI of the desktop. You must allocate storage for this parameter. - - - - - Binds the render target to the device context to which it issues drawing commands. - Microsoft Docs: - The device context to which the render target issues drawing commands. - The dimensions of the handle to a device context (HDC) to which the render target is bound. - - - - - The interpolation mode the Scale effect uses to scale the image. There are 6 scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Speficies whether a flip and/or rotation operation should be performed by the Bitmap source effect. - Microsoft Docs: - - - - The effect doesn't change the orientation of the input. - - - Flips the image horizontally. - - - Rotates the image clockwise 180 degrees. - - - Rotates the image clockwise 180 degrees and flips it horizontally. - - - Rotates the image clockwise 270 degrees and flips it horizontally. - - - Rotates the image clockwise 90 degrees. - - - Rotates the image clockwise 90 degrees and flips it horizontally. - - - Rotates the image clockwise 270 degrees. - - - - Indicates how the intersecting areas of the geometries contained in this geometry group are combined. - Microsoft Docs: - - - - - Returns the number of specified attributes on this element. - Microsoft Docs: - - - - - Specifies how the edges of nontext primitives are rendered. - Microsoft Docs: - - - - Edges are antialiased using the Direct2D per-primitive method of high-quality antialiasing. - - - Objects are aliased in most cases. Objects are antialiased only when they are drawn to a render target created by the CreateDxgiSurfaceRenderTarget method and Direct3D multisampling has been enabled on the backing DirectX Graphics Infrastructure (DXGI) surface. - - - - Sets the ending coordinates of the linear gradient in the brush's coordinate space. - Microsoft Docs: - The ending two-dimensional coordinates of the linear gradient, in the brush's coordinate space. - - - - - Paints the interior of the specified mesh. - Microsoft Docs: - The mesh to paint. - The brush used to paint the mesh. - - - - - Identifiers for properties of the DPI compensation effect. - Microsoft Docs: - - - - The interpolation mode the effect uses to scale the image. - - -The type is D2D1_DPICOMPENSATION_INTERPOLATION_MODE. - -The default value is D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR. - - - The mode used to calculate the border of the image, soft or hard. See Border modes for more info. - - -The type is D2D1_BORDER_MODE. - -The default value is D2D1_BORDER_MODE_SOFT. - - - The DPI of the input image. - - -The type is FLOAT. - -The default value is 96.0f. - - - - Creates an ID2D1Device1 object. - Microsoft Docs: - The IDXGIDevice object used when creating the ID2D1Device1. - The requested ID2D1Device1 object. - - - - - Indicates whether the buffer precision is supported by the underlying Direct3D device. - Microsoft Docs: - The buffer precision to check. - - - - - Properties of a transformed image source. - Microsoft Docs: - - - - The orientation at which the image source is drawn. - - - The horizontal scale factor at which the image source is drawn. - - - The vertical scale factor at which the image source is drawn. - - - 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. - - - Image sourc option flags. - - - - Copies the specified triangles to the sink. - Microsoft Docs: - An array of D2D1_TRIANGLE structures that describe the triangles to add to the sink. - The number of triangles to copy from the triangles array. - - - - - Specifies how a geometry is simplified to an ID2D1SimplifiedGeometrySink. - Microsoft Docs: - - - - The output can contain cubic Bezier curves and line segments. - - - The output is flattened so that it contains only line segments. - - - - Copies the specified region from memory into the current bitmap. - Microsoft Docs: - In the current bitmap, the rectangle to which the region specified by srcRect is copied. - The data to copy. - The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. - - - - - Represents a path commmand. Each command may reference floats from the segment data. Commands ending in _ABSOLUTE interpret data as absolute coordinate. Commands ending in _RELATIVE interpret data as being relative to the previous point. - Microsoft Docs: - - - - Closes the current subpath. Uses no segment data. - - - Starts a new subpath at the coordinate (x y). Uses 2 floats of segment data. - - - Starts a new subpath at the coordinate (x y). Uses 2 floats of segment data. - - - Draws a line to the coordinate (x y). Uses 2 floats of segment data. - - - Draws a line to the coordinate (x y). Uses 2 floats of segment data. - - - Draws a cubic Bezier curve (x1 y1 x2 y2 x y). The curve ends at (x, y) and is defined by the two control points (x1, y1) and (x2, y2). Uses 6 floats of segment data. - - - Draws a cubic Bezier curve (x1 y1 x2 y2 x y). The curve ends at (x, y) and is defined by the two control points (x1, y1) and (x2, y2). Uses 6 floats of segment data. - - - Draws a quadratic Bezier curve (x1 y1 x y). The curve ends at (x, y) and is defined by the control point (x1 y1). Uses 4 floats of segment data. - - - Draws a quadratic Bezier curve (x1 y1 x y). The curve ends at (x, y) and is defined by the control point (x1 y1). Uses 4 floats of segment data. - - - Draws an elliptical arc (rx ry x-axis-rotation large-arc-flag sweep-flag x y). The curve ends at (x, y) and is defined by the arc parameters. The two flags are - considered set if their values are non-zero. Uses 7 floats of segment data. - - - Draws an elliptical arc (rx ry x-axis-rotation large-arc-flag sweep-flag x y). The curve ends at (x, y) and is defined by the arc parameters. The two flags are - considered set if their values are non-zero. Uses 7 floats of segment data. - - - Draws a horizontal line to the coordinate (x). Uses 1 float of segment data. - - - Draws a horizontal line to the coordinate (x). Uses 1 float of segment data. - - - Draws a vertical line to the coordinate (y). Uses 1 float of segment data. - - - Draws a vertical line to the coordinate (y). Uses 1 float of segment data. - - - Draws a smooth cubic Bezier curve (x2 y2 x y). The curve ends at (x, y) and is defined by the control point (x2, y2). Uses 4 floats of segment data. - - - Draws a smooth cubic Bezier curve (x2 y2 x y). The curve ends at (x, y) and is defined by the control point (x2, y2). Uses 4 floats of segment data. - - - Draws a smooth quadratic Bezier curve ending at (x, y). Uses 2 floats of segment data. - - - Draws a smooth quadratic Bezier curve ending at (x, y). Uses 2 floats of segment data. - - - - Indicates whether a specific ID2D1SimplifiedGeometrySink figure is open or closed. - Microsoft Docs: - - - - The figure is open. - - - The figure is closed. - - - - Adds the given sprites to the end of this sprite batch. - Microsoft Docs: - The number of sprites to be added. This determines how many strides into each given array Direct2D will read. - A pointer to an array containing the destination rectangles specifying where to draw the sprites on the destination device context. - A pointer to an array containing the source rectangles specifying the regions of the source bitmap to draw as sprites. - Direct2D will use the entire source bitmap for sprites that are assigned a null value or the InfiniteRectU. - If this parameter is omitted entirely or set to a null value, then Direct2D will use the entire source bitmap for all the added sprites. - A pointer to an array containing the colors to apply to each sprite. - The output color is the result of component-wise multiplication of the source bitmap color and the provided color. - The output color is not clamped. - - - -Direct2D will not change the color of sprites that are assigned a null value. If this parameter is omitted entirely or set to a null value, - then Direct2D will not change the color of any of the added sprites. - A pointer to an array containing the transforms to apply to each sprite’s destination rectangle. - - -Direct2D will not transform the destination rectangle of any sprites that are assigned a null value. - If this parameter is omitted entirely or set to a null value, - then Direct2D will not transform the destination rectangle of any of the added sprites. - Specifies the distance, in bytes, between each rectangle in the destinationRectangles array. - If you provide a stride of 0, then the same destination rectangle will be used for each added sprite. - Specifies the distance, in bytes, between each rectangle in the sourceRectangles array (if that array is given). - If you provide a stride of 0, then the same source rectangle will be used for each added sprite. - Specifies the distance, in bytes, between each color in the colors array (if that array is given). - If you provide a stride of 0, then the same color will be used for each added sprite. - Specifies the distance, in bytes, between each transform in the transforms array (if that array is given). - If you provide a stride of 0, then the same transform will be used for each added sprite. - - - - - Represents a resource domain whose objects and device contexts can be used together. This interface performs all the same functions as the ID2D1Device5 interface, plus it enables the creation of ID2D1DeviceContext6 objects. - Microsoft Docs: - - - - - Retrieves the pre-transform nib shape for this style. - Microsoft Docs: - - - - - Represents a Bezier segment to be used in the creation of an ID2D1Ink object. This structure differs from D2D1_BEZIER_SEGMENT in that it is composed of D2D1_INK_POINTs, which contain a radius in addition to x- and y-coordinates. - Microsoft Docs: - - - - The first control point for the Bezier segment. - - - The second control point for the Bezier segment. - - - The end point for the Bezier segment. - - - - Creates an ID2D1Bitmap whose data is shared with another resource. - Microsoft Docs: - The interface ID of the object supplying the source data. - An ID2D1Bitmap, IDXGISurface, or an IWICBitmapLock that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. - The pixel format and DPI of the bitmap to create . The DXGI_FORMAT portion of the pixel format must match the DXGI_FORMAT of data or the method will fail, but the alpha modes don't have to match. To prevent a mismatch, you can pass NULL or the value obtained from the D2D1::PixelFormat helper function. The DPI settings do not have to match those of data. If both dpiX and dpiY are 0.0f, the DPI of the render target is used. - When this method returns, contains the address of a pointer to the new bitmap. This parameter is passed uninitialized. - - - - - Creates a dash array object which can be used to set the stroke-dasharray property. - Microsoft Docs: - An array of dashes. - Size of the array in th dashes argument. - The created ID2D1SvgStrokeDashArray. - - - - - Sets the value of a text content element. - Microsoft Docs: - The new value of the text content element. - - - - - - This structure allows a ID2D1Bitmap1 to be created with bitmap options and color context information available. - Microsoft Docs: - - - - The DXGI format and alpha mode to create the bitmap with. - - - The bitmap dpi in the x direction. - - - The bitmap dpi in the y direction. - - - The special creation options of the bitmap. - - - The optionally specified color context information. - - - - Removes all sprites from this sprite batch. - Microsoft Docs: - - - - - This interface performs all the same functions as the ID2D1DeviceContext1 interface, plus it enables functionality such as ink rendering, gradient mesh rendering, and improved image loading. - Microsoft Docs: - - - - - Returns the size of the render target in device-independent pixels. - Microsoft Docs: - - - - - Identifiers for properties of the Sepia effect. - Microsoft Docs: - - - - The D2D1_SEPIA_PROP_INTENSITY property is a float value indicating the intesity of the sepia effect. The allowed range is 0.0 to 1.0. The default value is 0.5. - - - The D2D1_SEPIA_PROP_ALPHA_MODE property is a D2D1_ALPHA_MODE enumeration value indicating the alpha mode of the input file. - See the About Alpha Modes section of the Supported Pixel Formats and Alpha Modes topic for additional information.. - The default value is D2D1_ALPHA_MODE_PREMULTIPLIED. - - - - Pushes a clipping rectangle onto the clip and layer stack. - Microsoft Docs: - The rectangle that defines the clip. - The antialias mode for the clip. - - - - - Creates a ID2D1CommandList object. - Microsoft Docs: - When this method returns, contains the address of a pointer to a command list. - - - - - Creates Direct2D resources. - Microsoft Docs: - - - - - Describes a two-dimensional rectangle. - Microsoft Docs: - - - - - Indicates the glyphs to be drawn. - Microsoft Docs: - The upper left corner of the baseline. - The glyphs to render. - Additional non-rendering information about the glyphs. - The brush used to fill the glyphs. - The measuring mode to apply to the glyphs. - - - - - Gets the color profile bytes for an ID2D1ColorContext. - Microsoft Docs: - When this method returns, contains the color profile. - The size of the profile buffer. - - - - - Describes compute shader support, which is an option on D3D10 feature level. - Microsoft Docs: - - - - Shader model 4 compute shaders are supported. - - - - Identifiers for properties of the Hue to RGB effect. - Microsoft Docs: - - - - The D2D1_HUETORGB_PROP_INPUT_COLOR_SPACE property is an enumeration value which indicates which color space to convert from. - The default value for the property is D2D1_HUETORGB_INPUT_COLOR_SPACE_HUE_SATURATION_VALUE. - See D2D1_HUETORGB_INPUT_COLOR_SPACE enumeration for more information. - - - - The effect can use this method to do one time initialization tasks. - Microsoft Docs: - An internal context interface that creates and returns effect author–centric types. - The effect can - populate the transform graph with a topology and can update it later. - - - - - Executes all pending drawing commands. - Microsoft Docs: - When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. - When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. - - - - - Sets a new primitive blend mode. - Microsoft Docs: - The primitive blend that will apply to subsequent primitives. - - - - - A Direct2D resource that wraps a WMF, EMF, or EMF+ metafile. - Microsoft Docs: - - - - - Gets the last child of this element. - Microsoft Docs: - Outputs the last child of this element. - - - - - Identifiers for properties of the 2D affine transform effect. - Microsoft Docs: - - - - The interpolation mode used to scale the image. There are 6 scale modes that range in quality and speed. - - -Type is D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE. - -Default value is D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR. - - - The mode used to calculate the border of the image, soft or hard. - - -Type is D2D1_BORDER_MODE. - -Default value is D2D1_BORDER_MODE_SOFT. - - - The 3x2 matrix to transform the image using the Direct2D matrix transform. - - -Type is D2D1_MATRIX_3X2_F. - -Default value is Matrix3x2F::Identity(). - - - In the high quality cubic interpolation mode, the sharpness level of the scaling filter as a float between 0 and 1. The values are unitless. You can use sharpness to adjust the quality of an image when you scale the image. - The sharpness factor affects the shape of the kernel. The higher the sharpness factor, the smaller the kernel. - - -
Note  This property affects only the high quality cubic interpolation mode.
-
 
-Type is FLOAT. - -Default value is 1.0f.
-
- - - Draws a color glyph run that has the format of DWRITE_GLYPH_IMAGE_FORMATS_SVG. - Microsoft Docs: - The origin of the baseline for the glyph run. - The glyphs to render. - The brush used to paint the specified glyphs. - Values for context-fill, context-stroke, and context-value that are used when rendering SVG glyphs. - The index used to select a color palette within a color font. Note that this not the same as the paletteIndex in the - DWRITE_COLOR_GLYPH_RUN struct, which is not relevant for SVG glyphs. - Indicates the measuring method used for text layout. - - - - - Represents an collection of D2D1_GRADIENT_STOP objects for linear and radial gradient brushes. - Microsoft Docs: - - - - - Specifies the alpha mode of the output of the Bitmap source effect. - Microsoft Docs: - - - - The effect output uses premultiplied alpha. - - - The effect output uses straight alpha. - - - - Gets the stroke transform type. - Microsoft Docs: - - - - - Returns the size of the render target in device pixels. - Microsoft Docs: - - - - - Returns the requested stroke parameters. - Microsoft Docs: - Describes how the stroke is painted. - The 'context-value' for the 'stroke-width' property. - The 'context-value' for the 'stroke-dasharray' - property. - The the number of dashes in the dash array. - The 'context-value' for the 'stroke-dashoffset' property. - - - - - Creates a factory object that can be used to create Direct2D resources. - Microsoft Docs: - The threading model of the factory and the resources it creates. - A reference to the IID of ID2D1Factory that is obtained by using __uuidof(ID2D1Factory). - The level of detail provided to the debugging layer. - When this method returns, contains the address to a pointer to the new factory. - - - - - Identifiers for properties of the Convolve matrix effect. - Microsoft Docs: - - - - The size of one unit in the kernel. The units are in (DIPs/kernel unit), where a kernel unit is the size of the element in the convolution kernel. - A value of 1 (DIP/kernel unit) corresponds to one pixel in a image at 96 DPI. - - -The type is FLOAT. - -The default value is 1.0f. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_CONVOLVEMATRIX_SCALE_MODE. - -The default value is D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR. - - - The width of the kernel matrix. The units are specified in kernel units. - - -The type is UINT32. - -The default value is 3. - - - The height of the kernel matrix. The units are specified in kernel units. - - -The type is UINT32. - -The default value is 3. - - - The kernel matrix to be applied to the image. The kernel elements aren't bounded and are specified as floats. - - -The first set of KernelSizeX numbers in the FLOAT[] corresponds to the first row in the kernel. - The second set of KernelSizeX numbers correspond to the second row, and so on up to KernelSizeY rows. - -The type is FLOAT[]. - -The default value is {0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f}. - - - The kernel matrix is applied to a pixel and then the result is divided by this value. - - -0 behaves as a value of float epsilon. - -The type is FLOAT. - -The default value is 1.0f. - - - The effect applies the kernel matrix, the divisor, and then the bias is added to the result. The bias is unbounded and unitless. - - -The type is FLOAT. - -The default value is 0.0f. - - - Shifts the convolution kernel from a centered position on the output pixel to a position you specify left/right and up/down. The offset is defined in kernel units. - - -With some offsets and kernel sizes, the convolution kernel’s samples won't land on a pixel image center. The pixel values for the kernel sample are computed by bilinear interpolation. - -The type is D2D1_VECTOR_2F. - -The default value is {0.0f, 0.0f}. - - - Specifies whether the convolution kernel is applied to the alpha channel or only the color channels. - - -If you set this to TRUE the convolution kernel is applied only to the color channels. - -If you set this to FALSE the convolution kernel is applied to all channels. - -The type is BOOL. - -The default value is FALSE. - - - The mode used to calculate the border of the image, soft or hard. - - -The type is D2D1_BORDER_MODE. - -The default value is D2D1_BORDER_MODE_SOFT. - - - Whether the effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. The effect clamps the values before it premultiplies the alpha. - - -If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, - but other effects and the output surface may clamp the values if they are not of high enough precision. - -The type is BOOL. - -The default value is FALSE. - - - - 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. - Microsoft Docs: - Precision of the input lookup table data. - Number of lookup table elements per dimension (X, Y, Z). - Buffer holding the lookup table data. - Size of the lookup table data buffer. - An array containing two values. The first value is the size in bytes from one row (X dimension) of LUT data to the next. - The second value is the size in bytes from one LUT data plane (X and Y dimensions) to the next. - Receives the new lookup table instance. - - - - - Starts a new figure at the specified point. - Microsoft Docs: - The point at which to begin the new figure. - Whether the new figure should be hollow or filled. - - - - - Specifies how the Crop effect handles the crop rectangle falling on fractional pixel coordinates. - Microsoft Docs: - - - - If the crop rectangle falls on fractional pixel coordinates, the effect applies antialiasing which results in a soft edge. - - - If the crop rectangle falls on fractional pixel coordinates, the effect clamps which results in a hard edge. - - - - Gets the image associated with the image brush. - Microsoft Docs: - When this method returns, contains the address of a pointer to the image associated with this brush. - - - - - Gets the method by which the brush vertically tiles those areas that extend past its bitmap. - Microsoft Docs: - - - - - Describes the caps, miter limit, line join, and dash information for a stroke. - Microsoft Docs: - - - - - Retrieves the factory associated with this resource. - Microsoft Docs: - When this method returns, contains a pointer to a pointer to the factory that created this resource. This parameter is passed uninitialized. - - - - - Set the shader instructions for this transform. - Microsoft Docs: - The resource id for the shader. - Additional information provided to the renderer to indicate the operations the pixel shader does. - - - - - Retrieves the DXGI color space of this context. Returns DXGI_COLOR_SPACE_CUSTOM when color context type is ICC. - Microsoft Docs: - - - - - Draws a rectangle. - Microsoft Docs: - The rectangle to be drawn to the command sink. - The brush used to stroke the geometry. - The width of the stroke. - The style of the stroke. - - - - - Draws a series of glyphs to the device context. - Microsoft Docs: - Origin of first glyph in the series. - The glyphs to render. - Supplementary glyph series information. - The brush that defines the text color. - The measuring mode of the glyph series, used to determine the advances and offsets. The default value is DWRITE_MEASURING_MODE_NATURAL. - - - - - Contains the position and color of a gradient stop. - Microsoft Docs: - - - - A value that indicates the relative position of the gradient stop in the brush. This value must be in the [0.0f, 1.0f] range if the gradient stop is to be seen explicitly. - - - The color of the gradient stop. - - - - Issues drawing commands to a GDI device context. - Microsoft Docs: - - - - - Describes flags that influence how the renderer interacts with a custom vertex shader. - Microsoft Docs: - - - - The logical equivalent of having no flags set. - - - If this flag is set, the renderer assumes that the vertex shader will cover the entire region of interest with vertices and need not clear the destination render target. If this flag is not set, the renderer assumes that the vertices do not cover the entire region interest and must clear the render target to transparent black first. - - - The renderer will use a depth buffer when rendering custom vertices. The depth buffer will be used for calculating occlusion information. This can result in the renderer output being draw-order dependent if it contains transparency. - - - Indicates that custom vertices do not overlap each other. - - - - Indicates whether the HWND associated with this render target is occluded. - Microsoft Docs: - - - - - Identifiers for properties of the Emboss effect. - Microsoft Docs: - - - - The D2D1_EMBOSS_PROP_HEIGHT property is a float value controlling the strength of the embossing effect. The allowed range is 0.0 to 10.0. The default value is 1.0. - - - The D2D1_EMBOSS_PROP_DIRECTION property is a float value specifying the light direction used to create the effect. The allowed range is 0.0 to 360.0. The default value is 0.0. - - - - Gets the value of a text content element. - Microsoft Docs: - The value of the text content element. - The length of the value in the name argument. - - - - - The interpolation mode the DPI compensation effect uses to scale the image. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output. - - - - Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush. - Microsoft Docs: - - - - A value that describes how the brush horizontally tiles those areas that extend past its bitmap. - - - A value that describes how the brush vertically tiles those areas that extend past its bitmap. - - - A value that specifies how the bitmap is interpolated when it is scaled or rotated. - - - - Gets the method by which the brush horizontally tiles those areas that extend past its bitmap. - Microsoft Docs: - - - - - Finds the given resource texture if it has already been created with ID2D1EffectContext::CreateResourceTexture with the same GUID. - Microsoft Docs: - The unique id that identifies the resource texture. - The returned texture that can be used as a resource in a Direct2D effect. - - - - - Renders a given gradient mesh to the target. - Microsoft Docs: - The gradient mesh to be rendered. - - - - - Retrieves the type of shape used at the end of a stroke. - Microsoft Docs: - - - - - Identifiers for properties of the 3D transform effect. - Microsoft Docs: - - - - The interpolation mode the effect uses on the image. There are 5 scale modes that range in quality and speed. - - -Type is D2D1_3DTRANSFORM_INTERPOLATION_MODE. - -Default value is D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR. - - - The mode used to calculate the border of the image, soft or hard. See Border modes for more info. - - -Type is D2D1_BORDER_MODE. - -Default value is D2D1_BORDER_MODE_SOFT. - - - A 4x4 transform matrix applied to the projection plane. The following matrix calculation is used to map points from one 3D coordinate system - to the transformed 2D coordinate system. - - -3D Depth Matrix -Where:
-
X, Y, Z = Input projection plane coordinates
-
Mx,y = Transform Matrix elements -
-
X’, Y’, Z’ =Output projection plane coordinates
-
- - -The individual matrix elements are not bounded and are unitless. - -Type is D2D1_MATRIX_4X4_F. - -Default value is Matrix4x4F(1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1).
-
- - - Supplies data to an analysis effect. - Microsoft Docs: - - - - - Gets the root element of the document. - Microsoft Docs: - Outputs the root element of the document. - - - - - Defines when font resources should be subset during printing. - Microsoft Docs: - - - - Uses a heuristic strategy to decide when to subset fonts. - -> [!NOTE] -> If the print driver has requested archive-optimized content, then Direct2D will subset fonts once, for the entire document. - - - Subsets and embeds font resources in each page, then discards that font subset after the page is printed out. - - - Sends out the original font resources without subsetting along with the page that first uses the font, and re-uses the font resources for later pages without resending them. - - - A value that's guaranteed to be a DWORD. - - - - Sets the interpolation mode for the image brush. - Microsoft Docs: - How the contents of the image will be interpolated to handle the brush transform. - - - - - Specifies the x-radius of the gradient ellipse, in the brush's coordinate space. - Microsoft Docs: - The x-radius of the gradient ellipse. This value is in the brush's coordinate space. - - - - - Returns the size, in device-independent pixels (DIPs), of the bitmap. - Microsoft Docs: - - - - - Creates a rotation transformation that rotates by the specified angle about the specified point. - Microsoft Docs: - The clockwise rotation angle, in degrees. - The point about which to rotate. - When this method returns, contains the new rotation transformation. You must allocate storage for this parameter. - - - - - Describes the minimum DirectX support required for hardware rendering by a render target. - Microsoft Docs: - - - - Direct2D determines whether the video card provides adequate hardware rendering support. - - - The video card must support DirectX 9. - - - The video card must support DirectX 10. - - - - This indicates the maximum feature level from the provided list which is supported by the device. - Microsoft Docs: - The feature levels provided by the application. - The count of feature levels provided by the application - The maximum feature level from the featureLevels list which is supported by the D2D device. - - - - - Creates an SVG document from a stream. - Microsoft Docs: - An input stream containing the SVG XML document. If null, an empty document is created. - Size of the initial viewport of the document. - When this method returns, contains a pointer to the created SVG document. - - - - - The alignment portion of the SVG preserveAspectRatio attribute. - Microsoft Docs: - - - - The alignment is set to SVG's 'none' value. - - - The alignment is set to SVG's 'xMinYMin' value. - - - The alignment is set to SVG's 'xMidYMin' value. - - - The alignment is set to SVG's 'xMaxYMin' value. - - - The alignment is set to SVG's 'xMinYMid' value. - - - The alignment is set to SVG's 'xMidYMid' value. - - - The alignment is set to SVG's 'xMaxYMid' value. - - - The alignment is set to SVG's 'xMinYMax' value. - - - The alignment is set to SVG's 'xMidYMax' value. - - - The alignment is set to SVG's 'xMaxYMax' value. - - - - Sets the properties of the output buffer of the specified transform node. - Microsoft Docs: - The number of bits and the type of the output buffer. - The number of channels in the output buffer (1 or 4). - - - - - Defines a range of vertices that are used when rendering less than the full contents of a vertex buffer. - Microsoft Docs: - - - - The first vertex in the range to process. - - - The number of vertices to use. - - - - Defines a resource texture when the original resource texture is created. - Microsoft Docs: - - - - The extents of the resource table in each dimension. - - - The number of dimensions in the resource texture. This must be a number from 1 to 3. - - - The precision of the resource texture to create. - - - The number of channels in the resource texture. - - - The filtering mode to use on the texture. - - - Specifies how pixel values beyond the extent of the texture will be sampled, in every dimension. - - - - The blend mode used for the Blend effect. - Microsoft Docs: - - - - Basic blend formula for alpha only. - -Mathematical formula for a mutiply effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a screen effect. - - - Basic blend formula for alpha only. - -mathematical formula for a darken effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a lighten effect. - - - Given: - - -
    -
  • A scene coordinate XY for the current pixel
  • -
  • A deterministic pseudo-random number generator rand(XY) based on seed coordinate XY, with unbiased distribution of values from [0, 1]
  • -
-Mathematical formula for a dissolve blend effect.
-
- - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a coor burn effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a linear burn effect. - - - Basic blend formula for alpha only. - -Mathematical formla for a darken color effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a lighter color effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a color dodge effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a linear dodge effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for an overlay effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a soft light effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a hard light effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a vivid light effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a linear light effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a pin light effect. - - - Basic blend formulas with f(FRGB, BRGB) = - -Mathematical formula for a hard mix effect. - - - Basic blend formulas with f(FRGB, BRGB) = abs(FRGB - BRGB) - - - Basic blend formulas with f(FRGB, BRGB) = FRGB + BRGB – 2 * FRGB * BRGB - - - Basic blend formula for alpha only. - -Mathematical formula for a hue blend effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a sturation blend effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a color blend effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a luminosity blend effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a subtract blend effect. - - - Basic blend formula for alpha only. - -Mathematical formula for a division blend effect. - - - - Gets the document that contains this element. - Microsoft Docs: - Ouputs the document that contains this element. This argument will be null if the element has been removed from the tree. - - - - - Interface describing an SVG points value in a polyline or polygon element. - Microsoft Docs: - - - - - Indicates the behavior of the gradient outside the normalized gradient range. - Microsoft Docs: - - - - - Gets the size of the layer in device-independent pixels. - Microsoft Docs: - - - - - This interface performs all the same functions as the existing ID2D1CommandSink1 interface. It also enables access to ink rendering and gradient mesh rendering. - Microsoft Docs: - - - - - Retrieves the color interpolation mode that the gradient stop collection uses. - Microsoft Docs: - - - - - Returns the output rectangle of the support transform. - Microsoft Docs: - The output bounds. - - - - - Specifies a value for the SVG display property. - Microsoft Docs: - - - - The element uses the default display behavior. - - - The element and all children are not rendered directly. - - - - Indicates whether the specified matrix is invertible. - Microsoft Docs: - The matrix to test. - - - - - Indicates the geometry to be drawn to the command sink. - Microsoft Docs: - The geometry to be stroked. - The brush that will be used to fill the stroked geometry. - The width of the stroke. - The style of the stroke. - - - - - The interpolation mode the Spot-diffuse lighting effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. - Then uses the cubic interpolation mode for the final output. - - - - Identifiers for properties of the Shadow effect. - Microsoft Docs: - - - - The amount of blur to be applied to the alpha channel of the image. You can compute the blur radius of the kernel by multiplying the standard deviation by 3. - The units of both the standard deviation and blur radius are DIPs. - - -This property is the same as the Gaussian Blur standard deviation property. - -The type is FLOAT. - -The default value is 3.0f. - - - The color of the drop shadow. This property is a D2D1_VECTOR_4F defined as: (R, G, B, A). You must specify this color in straight alpha. - - -The type is D2D1_VECTOR_4F. - -The default value is {0.0f, 0.0f, 0.0f, 1.0f}. - - - The level of performance optimization. - - -The type is D2D1_SHADOW_OPTIMIZATION. - -The default value is D2D1_SHADOW_OPTIMIZATION_BALANCED. - - - - The interpolation mode the 3D perspective transform effect uses on the image. There are 5 scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - - Specifies the method used to determine which points are inside the geometry described by this geometry sink and which points are outside. - Microsoft Docs: - The method used to determine whether a given point is part of the geometry. - - - - - Converts the given color from one colorspace to another. - Microsoft Docs: - The source color space. - The destination color space. - The source color. - - - - - Retrieves the ID2D1GradientStopCollection associated with this linear gradient brush. - Microsoft Docs: - The ID2D1GradientStopCollection object associated with this linear gradient brush object. This parameter is passed uninitialized. - - - - - Interface describing an SVG attribute. - Microsoft Docs: - - - - - Creates Direct2D resources. This interface also enables the creation of ID2D1Device2 objects. - Microsoft Docs: - - - - - Gets the device associated with a device context. - Microsoft Docs: - When this method returns, contains the address of a pointer to a Direct2D device associated with this device context. - - - - - Passes all remaining resources to the print sub-system, then clean up and close the current print job. - Microsoft Docs: - - - - - Identifiers for the properties of the Color matrix effect. - Microsoft Docs: - - - - A 5x4 matrix of float values. The elements in the matrix are not bounded and are unitless. - - -The type is D2D1_MATRIX_5X4_F. - -The default value is the identity matrix, Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0). - - - The alpha mode of the output. - - -The type is D2D1_COLORMATRIX_ALPHA_MODE. - -The default value is D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. - - - Whether the effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. - The effect clamps the values before it premultiplies the alpha. - - -If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, - but other effects and the output surface may clamp the values if they are not of high enough precision. - -The type is BOOL. - -The default value is FALSE. - - - - Saves the current drawing state to the specified ID2D1DrawingStateBlock. - Microsoft Docs: - When this method returns, contains the current drawing state of the render target. This parameter must be initialized before passing it to the method. - - - - - Identifiers for properties of the Atlas effect. - Microsoft Docs: - - - - The portion of the image passed to the next effect. - Type is D2D1_VECTOR_4F. - Default value is (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). - - - The maximum size sampled for the output rectangle. - Type is D2D1_VECTOR_4F. - Default value is (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). - - - - Indicates when ID2D1CommandSink processing has completed. - Microsoft Docs: - - - - - Specifies the interpolation mode used when the brush bitmap is scaled or rotated. - Microsoft Docs: - The interpolation mode used when the brush bitmap is scaled or rotated. - - - - - Represents a resource domain whose objects and device contexts can be used together. - Microsoft Docs: - - - - - This interface performs all the same functions as the existing ID2D1GdiMetafile interface. It also enables accessing the metafile DPI and bounds. - Microsoft Docs: - - - - - Specifies how one of the color sources is to be derived and optionally specifies a preblend operation on the color source. - Microsoft Docs: - - - - The data source is black (0, 0, 0, 0). There is no preblend operation. - - - The data source is white (1, 1, 1, 1). There is no preblend operation. - - - The data source is color data (RGB) from the second input of the blend transform. There is not a preblend operation. - - - The data source is color data (RGB) from second input of the blend transform. The preblend operation inverts the data, generating 1 - RGB. - - - The data source is alpha data (A) from second input of the blend transform. There is no preblend operation. - - - The data source is alpha data (A) from the second input of the blend transform. The preblend operation inverts the data, generating 1 - A. - - - The data source is alpha data (A) from the first input of the blend transform. There is no preblend operation. - - - The data source is alpha data (A) from the first input of the blend transform. The preblend operation inverts the data, generating 1 - A. - - - The data source is color data from the first input of the blend transform. There is no preblend operation. - - - The data source is color data from the first input of the blend transform. The preblend operation inverts the data, generating 1 - RGB. - - - The data source is alpha data from the second input of the blend transform. The preblend operation clamps the data to 1 or less. - - - The data source is the blend factor. There is no preblend operation. - - - The data source is the blend factor. The preblend operation inverts the blend factor, generating 1 - blend_factor. - - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. - Then uses the cubic interpolation mode for the final output. - - - - Gets the bounds of an image without the world transform of the context applied. - Microsoft Docs: - The image whose bounds will be calculated. - When this method returns, contains a pointer to the bounds of the image in device independent pixels (DIPs) and in local space. - - - - - The bitmap or command list to which the Direct2D device context will now render. - Microsoft Docs: - The surface or command list to which the Direct2D device context will render. - - - - - Creates a color context from an IWICColorContext. The D2D1ColorContext space of the resulting context varies, see Remarks for more info. - Microsoft Docs: - The IWICColorContext used to initialize the color context. - When this method returns, contains the address of a pointer to a new color context. - - - - - Values for the D2D1_HIGHLIGHTSANDSHADOWS_PROP_INPUT_GAMMA property of the Highlights and Shadows effect. - Microsoft Docs: - - - - Indicates the input image is in linear gamma space. - - - Indicates the input image is sRGB gamma space. - - - - Retrieves the underlying bitmap image source from the Windows Imaging Component (WIC). - Microsoft Docs: - On return contains the bitmap image source. - - - - - Gets the number of inputs to the transform node. - Microsoft Docs: - - - - - Updates the segment data array. Existing segment data not updated by this method are preserved. The array is resized larger if necessary to accomodate the new segment data. - Microsoft Docs: - The data array. - The number of data to update. - The index at which to begin updating segment data. Must be less than or equal to the size of the segment data array. - - - - - Provides the GPU render info interface to the transform implementation. - Microsoft Docs: - The interface supplied back to the calling method to allow it to specify the GPU based transform pass. - - - - - Specifies whether text snapping is suppressed or clipping to the layout rectangle is enabled. This enumeration allows a bitwise combination of its member values. - Microsoft Docs: - - - - Text is not vertically snapped to pixel boundaries. This setting is recommended for text that is being animated. - - - Text is clipped to the layout rectangle. - - - In Windows 8.1 and later, text is rendered using color versions of glyphs, if defined by the font. - - - Bitmap origins of color glyph bitmaps are not snapped. - - - Text is vertically snapped to pixel boundaries and is not clipped to the layout rectangle. - - - - This interface performs all the same functions as the existing ID2D1GdiMetafileSink interface. It also enables access to metafile records. - Microsoft Docs: - - - - - Sets the paint type. - Microsoft Docs: - The new paint type. - - - - - The renderer calls this method to provide the effect implementation with a way to specify its transform graph and transform graph changes. - Microsoft Docs: - The graph to which the effect describes its transform topology through the SetDescription call. - - - - - Updates the points array. Existing points not updated by this method are preserved. The array is resized larger if necessary to accomodate the new points. - Microsoft Docs: - The points array. - The number of points to update. - The index at which to begin updating points. Must be less than or equal to the size of the array. - - - - - Allows the operating system to free the video memory of resources by discarding their content. - Microsoft Docs: - - - - - Copies the specified region from the specified render target into the current bitmap. - Microsoft Docs: - In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. - The render target that contains the region to copy. - The area of renderTarget to copy. - - - - - Specifies the chroma subsampling of the input chroma image used by the YCbCr effect. - Microsoft Docs: - - - - This mode attempts to infer the chroma subsampling from the bounds of the input images. When this option is selected, - the smaller plane is upsampled to the size of the larger plane and this effect’s output rectangle is the intersection of the two planes. - When using this mode, care should be taken when applying effects to the input planes that change the image bounds, such as the border transform, - so that the desired size ratio between the planes is maintained. - - - The chroma plane is horizontally subsampled by 1/2 and vertically subsampled by 1/2. - When this option is selected, the chroma plane is horizontally and vertically upsampled by 2x and this effect's output rectangle is the intersection of the two planes. - - - The chroma plane is horizontally subsampled by 1/2. When this option is selected, - the chroma plane is horizontally upsampled by 2x and this effect's output rectangle is the intersection of the two planes. - - - The chroma plane is not subsampled. When this option is selected this effect’s output rectangle is the intersection of the two planes. - - - The chroma plane is vertically subsampled by 1/2. When this option is selected, the chroma plane is vertically upsampled by 2x and this effect's - output rectangle is the intersection of the two planes. - - - - Describes a rounded rectangle. - Microsoft Docs: - - - - - Creates an empty ID2D1PathGeometry. - Microsoft Docs: - When this method returns, contains the address to a pointer to the path geometry created by this method. - - - - - Represents a color context to be used with the Color Management Effect. - Microsoft Docs: - - - - - Defines a blend description to be used in a particular blend transform. - Microsoft Docs: - - - - Specifies the first RGB data source and includes an optional preblend operation. - - - Specifies the second RGB data source and includes an optional preblend operation. - - - Specifies how to combine the RGB data sources. - - - Specifies the first alpha data source and includes an optional preblend operation. Blend options that end in _COLOR are not allowed. - - - Specifies the second alpha data source and includes an optional preblend operation. Blend options that end in _COLOR are not allowed. - - - Specifies how to combine the alpha data sources. - - - Parameters to the blend operations. The blend must use D2D1_BLEND_BLEND_FACTOR for this to be used. - - - - Creates a new Direct2D device associated with the provided DXGI device. - Microsoft Docs: - The DXGI device the Direct2D device is associated with. - The properties to apply to the Direct2D device. - When this function returns, contains the address of a pointer to a Direct2D device. - - - - - Enables specification of information for a compute-shader rendering pass. - Microsoft Docs: - - - - - Retrieves the specified subset of sprites from this sprite batch. For the best performance, use nullptr for properties that you do not need to retrieve. - Microsoft Docs: - The index of the first sprite in this sprite batch to retrieve. - The number of sprites to retrieve. - When this method returns, contains a pointer to an array containing the destination rectangles for the retrieved sprites. - When this method returns, contains a pointer to an array containing the source rectangles for the retrieved sprites. - - - -The InfiniteRectU is returned for any sprites that were not assigned a source rectangle. - When this method returns, contains a pointer to an array containing the colors to be applied to the retrieved sprites. - - - -The color {1.0f, 1.0f, 1.0f, 1.0f} is returned for any sprites that were not assigned a color. - When this method returns, contains a pointer to an array containing the transforms to be applied to the retrieved sprites. - - - -The identity matrix is returned for any sprites that were not assigned a transform. - - - - - Creates a new ID2D1GradientMesh instance using the given array of patches. - Microsoft Docs: - A pointer to the array containing the patches to be used in this mesh. - The number of patches in the patches argument to read. - When this method returns, contains the address of a pointer to the new gradient mesh. - - - - - This method allows a compute-shader–based transform to select the number of thread groups to execute based on the number of output pixels it needs to fill. - Microsoft Docs: - The output rectangle that will be filled by the compute transform. - The number of threads in the x dimension. - The number of threads in the y dimension. - The number of threads in the z dimension. - - - - - Deserializes a subtree from the stream. The stream must have only one root element, but that root element need not be an 'svg' element. The output element is not inserted into this document tree. - Microsoft Docs: - An input stream containing the SVG XML subtree. - The root of the subtree. - - - - - Sets the D2D1_DRAWING_STATE_DESCRIPTION1 associated with this drawing state block. - Microsoft Docs: - The D2D1_DRAWING_STATE_DESCRIPTION1 to be set associated with this drawing state block. - - - - - Represents a collection of style properties to be used by methods like ID2D1DeviceContext2::DrawInkwhen rendering ink. The ink style defines the nib (pen tip) shape and transform. - Microsoft Docs: - - - - - Replaces the oldChild element with the newChild. - Microsoft Docs: - The element to be inserted. - The child element to be replaced. The oldChild element must be an immediate child of this element. - - - - - Identifiers for properties of the Discrete transfer effect. - Microsoft Docs: - - - - The list of values used to define the transfer function for the Red channel. - - -The type is FLOAT[]. - -The default value is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Red channel. - If you set this to FALSE the effect applies the RedDiscreteTransfer function to the Red channel. - - -The type is BOOL. - -The default value if FALSE. - - - The list of values used to define the transfer function for the Green channel. - - -The type is FLOAT[]. - -The default value is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Green channel. - If you set this to FALSE the effect applies the GreenDiscreteTransfer function to the Green channel. - - -The type is BOOL. - -The default value if FALSE. - - - The list of values used to define the transfer function for the Blue channel. - - -The type is FLOAT[]. - -The default value is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Blue channel. - If you set this to FALSE the effect applies the BlueDiscreteTransfer function to the Blue channel. - - -The type is BOOL. - -The default value if FALSE. - - - The list of values used to define the transfer function for the Alpha channel. - - -The type is FLOAT[]. - -The default value is {0.0f, 1.0f}. - - - If you set this to TRUE the effect does not apply the transfer function to the Alpha channel. - If you set this to FALSE the effect applies the AlphaDiscreteTransfer function to the Alpha channel. - - -The type is BOOL. - -The default value if FALSE. - - - Whether the effect clamps color values to between 0 and 1 before the effect passes the values to the next effect in the graph. - The effect clamps the values before it premultiplies the alpha. - - - -If you set this to TRUE the effect will clamp the values. If you set this to FALSE, the effect will not clamp the color values, - but other effects and the output surface may clamp the values if they are not of high enough precision. - -The type is BOOL. - -The default value if FALSE. - - - - Gets the string length of an attribute of this element. - Microsoft Docs: - The name of the attribute. - The string type of the attribute. - The lengthe of the attribute. The returned string length does not include room for the null terminator. - - - - - Creates Direct2D resources. This interface also enables the creation of ID2D1Device4 objects. - Microsoft Docs: - - - - - Sets the image associated with the provided image brush. - Microsoft Docs: - The image to be associated with the image brush. - - - - - Copies the gradient stops from the collection into memory. - Microsoft Docs: - When this method returns, contains a pointer to a one-dimensional array of D2D1_GRADIENT_STOP structures. - The number of gradient stops to copy. - - - - - Clears the drawing area to the specified color. - Microsoft Docs: - The color to which the command sink should be cleared. - - - - - Renders the given ink object using the given brush and ink style. - Microsoft Docs: - The ink object to be rendered. - The brush with which to render the ink object. - The ink style to use when rendering the ink object. - - - - - Maps the given bitmap into memory. - Microsoft Docs: - The options used in mapping the bitmap into memory. - When this method returns, contains a reference to the rectangle that is mapped into memory. - - - - - Specifies stroke and join options to be applied to new segments added to the geometry sink. - Microsoft Docs: - Stroke and join options to be applied to new segments added to the geometry sink. - - - - - The alpha mode of the output of the Color matrix effect. - Microsoft Docs: - - - - The effect un-premultiplies the input, applies the color matrix, and premultiplies the output. - - - The effect applies the color matrix directly to the input, and doesn't premultiply the output. - - - - Sets a new primitive blend mode. - Microsoft Docs: - The primitive blend that will apply to subsequent primitives. - - - - - Represents a basic image-processing construct in Direct2D. - Microsoft Docs: - - - - - Removes the provided node from the transform graph. - Microsoft Docs: - The node that will be removed from the transform graph. - - - - - Contains the data format and alpha mode for a bitmap or render target. - Microsoft Docs: - - - - A value that specifies the size and arrangement of channels in each pixel. - - - A value that specifies whether the alpha channel is using pre-multiplied alpha, straight alpha, whether it should be ignored and considered opaque, or whether it is unkown. - - - - Creates an image source from a set of DXGI surface(s). The YCbCr surface(s) are converted to RGBA automatically during subsequent drawing. - Microsoft Docs: - The DXGI surfaces to create the image source from. - The number of surfaces provided; must be between one and three. - The color space of the input. - Options controlling color space conversions. - Receives the new image source instance. - - - - - Indicates the number of geometry objects in the geometry group. - Microsoft Docs: - - - - - Creates a gradient stop collection, enabling the gradient to contain color channels with values outside of [0,1] and also enabling rendering to a high-color render target with interpolation in sRGB space. - Microsoft Docs: - An array of color values and offsets. - The number of elements in the gradientStops array. - Specifies both the input color space and the space in which the color interpolation occurs. - The color space that colors will be converted to after interpolation occurs. - The precision of the texture used to hold interpolated values. - -
Note  This method will fail if the underlying Direct3D device does not support the requested buffer precision. Use ID2D1DeviceContext::IsBufferPrecisionSupported to determine what is supported. -
-
 
- Defines how colors outside of the range defined by the stop collection are determined. - Defines how colors are interpolated. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED is the default, see Remarks for more info. - The new gradient stop collection. -
-
- - - Gets the bounds of an image with the world transform of the context applied. - Microsoft Docs: - The image whose bounds will be calculated. - When this method returns, contains a pointer to the bounds of the image in device independent pixels (DIPs). - - - - - Defines the properties of a vertex buffer that are standard for all vertex shader definitions. - Microsoft Docs: - - - - The number of inputs to the vertex shader. - - - Indicates how frequently the vertex buffer is likely to be updated. - - - The initial contents of the vertex buffer. - - - The size of the vertex buffer, in bytes. - - - - Contains the debugging level of an ID2D1Factory object. - Microsoft Docs: - - - - The debugging level of the ID2D1Factory object. - - - - Sets a vertex buffer, a corresponding vertex shader, and options to control how the vertices are to be handled by the Direct2D context. - Microsoft Docs: - The vertex buffer, if this is cleared, the default vertex shader and mapping to the transform rectangles will be used. - Options that influence how the renderer will interact with the vertex shader. - How the vertices will be blended with the output texture. - The set of vertices to use from the buffer. - The GUID of the vertex shader. - - - - - Describes the caps, miter limit, line join, and dash information for a stroke. - Microsoft Docs: - - - - - Describes a geometric path that does not contain quadratic bezier curves or arcs. - Microsoft Docs: - - - - - Describes whether an opacity mask contains graphics or text. Direct2D uses this information to determine which gamma space to use when blending the opacity mask. - Microsoft Docs: - - - - The opacity mask contains graphics. The opacity mask is blended in the gamma 2.2 color space. - - - The opacity mask contains non-GDI text. The gamma space used for blending is obtained from the render target's text rendering parameters. (ID2D1RenderTarget::SetTextRenderingParams). - - - The opacity mask contains text rendered using the GDI-compatible rendering mode. The opacity mask is blended using the gamma for GDI rendering. - - - - Encapsulates a device- and transform-dependent representation of a filled or stroked geometry. - Microsoft Docs: - - - - - Used to specify the geometric blend mode for all Direct2D primitives. - Microsoft Docs: - - - - The standard source-over-destination blend mode. - - - The source is copied to the destination; the destination pixels are ignored. - - - The resulting pixel values use the minimum of the source and destination pixel values. Available in Windows 8 and later. - - - The resulting pixel values are the sum of the source and destination pixel values. Available in Windows 8 and later. - - - The resulting pixel values use the maximum of the source and destination pixel values. - Available in Windows 10 and later (set using ID21CommandSink4::SetPrimitiveBlend2). - - - - Interface for all SVG elements. - Microsoft Docs: - - - - - Defines an object that paints an area. Interfaces that derive from ID2D1Brush describe how the area is painted. - Microsoft Docs: - - - - - Renders part or all of the given sprite batch to the device context using the specified drawing options. - Microsoft Docs: - The sprite batch to draw. - The index of the first sprite in the sprite batch to draw. - The number of sprites to draw. - The bitmap from which the sprites are to be sourced. Each sprite’s source rectangle refers to a portion of this bitmap. - The interpolation mode to use when drawing this sprite batch. This determines how Direct2D interpolates pixels within the drawn sprites if scaling is performed. - The additional drawing options, if any, to be used for this sprite batch. - - - - - Wraps an effect graph into a single transform node and then inserted into a transform graph. This allows an effect to aggregate other effects. - Microsoft Docs: - The effect to be wrapped in a transform node. - The returned transform node that encapsulates the effect graph. - - - - - Describes an elliptical arc between two points. - Microsoft Docs: - - - - The end point of the arc. - - - The x-radius and y-radius of the arc. - - - A value that specifies how many degrees in the clockwise direction the ellipse is rotated relative to the current coordinate system. - - - A value that specifies whether the arc sweep is clockwise or counterclockwise. - - - A value that specifies whether the given arc is larger than 180 degrees. - - - - Retrieves the antialiasing mode, transform, and tags portion of the drawing state. - Microsoft Docs: - When this method returns, contains the antialiasing mode, transform, and tags portion of the drawing state. You must allocate storage for this parameter. - - - - - Removes commands from the end of the commands array. - Microsoft Docs: - Specifies how many commands to remove. - - - - - This object supplies the values for context-fill, context-stroke, and context-value that are used when rendering SVG glyphs. - Microsoft Docs: - - - - - Renders drawing instructions to a window. - Microsoft Docs: - - - - - Instructs the command list to stop accepting commands so that you can use it as an input to an effect or in a call to ID2D1DeviceContext::DrawImage. - Microsoft Docs: - - - - - Retrieves the current antialiasing mode for nontext drawing operations. - Microsoft Docs: - - - - - Indicates how the Color management effect should interpret alpha data that is contained in the input image. - Microsoft Docs: - - - - The effect assumes the alpha mode is premultiplied. - - - The effect assumes the alpha mode is straight. - - - - Sets the antialiasing mode that will be used to render any subsequent geometry. - Microsoft Docs: - The antialiasing mode selected for the command list. - - - - - Gets points from the points array. - Microsoft Docs: - Buffer to contain the points. - The element count of the buffer. - The index of the first point to retrieve. - - - - - Represents a resource domain whose objects and device contexts can be used together. This interface performs all the same functions as the existing ID2D1Device1 interface. It also enables the creation of ID2D1DeviceContext2 objects. - Microsoft Docs: - - - - - The level of performance optimization for the Shadow effect. - Microsoft Docs: - - - - Applies internal optimizations such as pre-scaling at relatively small radii. Uses linear filtering. - - - Uses the same optimization thresholds as Speed mode, but uses trilinear filtering. - - - Only uses internal optimizations with large blur radii, where approximations are less likely to be visible. Uses trilinear filtering. - - - - Gets the number of inputs to the effect. - Microsoft Docs: - - - - - Paints an area with a bitmap. - Microsoft Docs: - - - - - Specifies the algorithm that is used when images are scaled or rotated. - Microsoft Docs: - - - - Use the exact color of the nearest bitmap pixel to the current rendering pixel. - - - Interpolate a color from the four bitmap pixels that are the nearest to the rendering pixel. - - - - Adds the given segments to the end of this ink object. - Microsoft Docs: - A pointer to an array of segments to be added to this ink object. - The number of segments to be added to this ink object. - - - - - Describes the opacity and transformation of a brush. - Microsoft Docs: - - - - A value between 0.0f and 1.0f, inclusive, that specifies the degree of opacity of the brush. - - - The transformation that is applied to the brush. - - - - Defines constants that identify the top level properties of the HDR Tone Map effect. - Microsoft Docs: - - - - Identifies the InputMaxLuminance property of the effect. The property is of type FLOAT, and is specified in nits. - - - Identifies the OutputMaxLuminance property of the effect. The property is of type FLOAT, and is specified in nits. - - - Identifies the DisplayMode property of the effect. The property is of type D2D1_HDRTONEMAP_DISPLAY_MODE. - - - - Identifiers for properties of the Morphology effect. - Microsoft Docs: - - - - The morphology mode. - - -The type is D2D1_MORPHOLOGY_MODE. - -The default value is D2D1_MORPHOLOGY_MODE_ERODE. - - - Size of the kernel in the X direction. The units are in DIPs. Values must be between 1 and 100 inclusive. - - -The type is UINT. - -The default value is 1. - - - Size of the kernel in the Y direction. The units are in DIPs. Values must be between 1 and 100 inclusive. - - -The type is UINT. - -The default value is 1. - - - - Represents an image source which shares resources with an original image source. - Microsoft Docs: - - - - - Specifies how the brush vertically tiles those areas that extend past its bitmap. - Microsoft Docs: - A value that specifies how the brush vertically tiles those areas that extend past its bitmap. - - - - - Indicates whether a specific ID2D1SimplifiedGeometrySink figure is filled or hollow. - Microsoft Docs: - - - - Indicates the figure will be filled by the FillGeometry (ID2D1CommandSink::FillGeometry - or ID2D1RenderTarget::FillGeometry) method. - - - Indicates the figure will not be filled by the FillGeometry (ID2D1CommandSink::FillGeometry - or ID2D1RenderTarget::FillGeometry) method and will only consist of an outline. - Moreover, the bounds of a hollow figure are zero. - D2D1_FIGURE_BEGIN_HOLLOW should be used for stroking, or for other geometry operations. - - - - Returns the current interpolation mode of the brush. - Microsoft Docs: - - - - - Draws a line drawn between two points. - Microsoft Docs: - The start point of the line. - The end point of the line. - The brush used to fill the line. - The width of the stroke to fill the line. - The style of the stroke. If not specified, the stroke is solid. - - - - - Gets the degree of opacity of this brush. - Microsoft Docs: - - - - - Creates a skew transformation that has the specified x-axis angle, y-axis angle, and center point. - Microsoft Docs: - The x-axis skew angle, which is measured in degrees counterclockwise from the y-axis. - The y-axis skew angle, which is measured in degrees counterclockwise from the x-axis. - The center point of the skew operation. - When this method returns, contains the rotation transformation. You must allocate storate for this parameter. - - - - - This indicates whether an optional capability is supported by the D3D device. - Microsoft Docs: - The feature to query support for. - A structure indicating information about how or if the feature is supported. - The size of the featureSupportData parameter. - - - - - Paints an area with a linear gradient. - Microsoft Docs: - - - - - Produces 2D pixel data that has been sourced from WIC. - Microsoft Docs: - - - - - Represents a set of vertices that form a list of triangles. - Microsoft Docs: - - - - - Represents a resource domain whose objects and device contexts can be used together. - Microsoft Docs: - - - - - Identifiers for properties of the Temperature and Tint effect. - Microsoft Docs: - - - - The D2D1_TEMPERATUREANDTINT_PROP_TEMPERATURE property is a float value specifying how much to increase or decrease the temperature of the input image. The allowed range is -1.0 to 1.0. The default value is 0.0. - - - The D2D1_TEMPERATUREANDTINT_PROP_TINT property is a float value specifying how much to increase or decrease the tint of the input image. The allowed range is -1.0 to 1.0. The default value is 0.0. - - - - Retrieves an image of the color bitmap glyph from the color glyph cache. - Microsoft Docs: - The format for the glyph image. - If there is no image data in the requested format for the requested glyph, this method will return an error. - The origin for the glyph. - Reference to a font face which contains font face type, appropriate file references, face identification data and various font data such as metrics, names and glyph outlines. - The specified font size affects the choice of which bitmap to use from the font. It also affects the output glyphTransform, causing it to properly scale the glyph. - Index of the glyph. - If true, specifies that glyphs are rotated 90 degrees to the left and vertical metrics are used. Vertical writing is achieved by specifying isSideways as true and rotating the entire run 90 degrees to the right via a rotate transform. - The transform to apply to the image. This input transform affects the choice of which bitmap to use from the font. It is also factored into the output glyphTransform. - Dots per inch along the x-axis. - Dots per inch along the y-axis. - Output transform, which transforms from the glyph's space to the same output space as the worldTransform. This includes the input - glyphOrigin, the glyph's offset from the glyphOrigin, and any other required transformations. - On completion contains the retrieved glyph image. - - - - - Represents an SVG length. - Microsoft Docs: - - - - - Specifies how the memory to be mapped from the corresponding ID2D1Bitmap1 should be treated. - Microsoft Docs: - - - - Allow CPU Read access. - - - Allow CPU Write access. - - - Discard the previous contents of the resource when it is mapped. - - - - Identifiers for properties of the Distant-specular lighting effect. - Microsoft Docs: - - - - The direction angle of the light source in the XY plane relative to the X-axis in the counter clock wise direction. The units are in degrees and must be between 0 and 360 degrees. - - -The type is FLOAT. - -The default value is 0.0f. - - - The direction angle of the light source in the YZ plane relative to the Y-axis in the counter clock wise direction. The units are in degrees and must be between 0 and 360 degrees. - - -The type is FLOAT. - -The default value is 0.0f. - - - The exponent for the specular term in the Phong lighting equation. A larger value corresponds to a more reflective surface. The value is unitless and must be between 1.0 and 128. - - -The type is FLOAT. - -The default value is 1.0f. - - - The ratio of specular reflection to the incoming light. The value is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The scale factor in the Z direction. The value is unitless and must be between 0 and 10,000. - - -The type is FLOAT. - -The default value is 1.0f. - - - The color of the incoming light. This property is exposed as a D2D1_VECTOR_3F – (R, G, B) and used to compute LR, LG, LB. - - -The type is D2D1_VECTOR_3F. - -The default value is {1.0f, 1.0f, 1.0f}. - - - The size of an element in the Sobel kernel used to generate the surface normal in the X and Y direction. This property is a D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) and is defined in (device-independent pixels (DIPs)/Kernel Unit). The effect uses bilinear interpolation to scale the bitmap to match size of kernel elements. - - -The type is D2D1_VECTOR_2F. - -The default value is {1.0f, 1.0f}. - - - The interpolation mode the effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - - -The type is D2D1_DISTANTSPECULAR_SCALE_MODE. - -The default value is D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR. - - - - Gets the unit mapping that an effect will use for properties that could be in either dots per inch (dpi) or pixels. - Microsoft Docs: - The dpi on the x-axis. - The dpi on the y-axis. - - - - - Sets the resource texture corresponding to the given shader texture index to the given texture resource. - Microsoft Docs: - The index to set the resource texture on. - The resource texture object to set on the shader texture index. - - - - - Defines options that should be applied to the color space. - Microsoft Docs: - - - - The color space is otherwise described, such as with a color profile. - - - The color space is sRGB. - - - The color space is scRGB. - - - - Prepares an effect for the rendering process. - Microsoft Docs: - Indicates the type of change the effect should expect. - - - - - Creates or finds the given resource texture, depending on whether a resource id is specified. - Microsoft Docs: - An optional pointer to the unique id that identifies the lookup table. - The properties used to create the resource texture. - The optional data to be loaded into the resource texture. - An optional pointer to the stride to advance through the resource texture, according to dimension. - The size, in bytes, of the data. - The returned texture that can be used as a resource in a Direct2D effect. - - - - - Clears the transform nodes and all connections from the transform graph. - Microsoft Docs: - - - - - Changes the blend description of the corresponding blend transform object. - Microsoft Docs: - The new blend description specified for the blend transform. - - - - - The interpolation mode the Distant-specular lighting effect uses to scale the image to the corresponding kernel unit length. There are six scale modes that range in quality and speed. - Microsoft Docs: - - - - Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image. - - - Uses a four point sample and linear interpolation. This mode outputs a higher quality image than nearest neighbor. - - - Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image. - - - Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels. - - - Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap. - - - Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. - Then uses the cubic interpolation mode for the final output. - - - - Defines a property binding to a pair of functions which get and set the corresponding property. - Microsoft Docs: - - - - The name of the property. - - - The function that will receive the data to set. - - - The function that will be asked to write the output data. - - - - Gets the extend mode in the x direction. - Microsoft Docs: - - - - - Retrieves the specified subset of segments stored in this ink object. - Microsoft Docs: - The index of the first segment in this ink object to retrieve. - When this method returns, contains a pointer to an array of retrieved segments. - The number of segments to retrieve. Note that segmentsCount must be less than or equal to the number of segments in the ink object minus startSegment. - - - - - Draws a text layout object. If the layout is not subsequently changed, this can be more efficient than DrawText when drawing the same layout repeatedly. - Microsoft Docs: - The point, described in device-independent pixels, at which the upper-left corner of the text described by textLayout is drawn. - The formatted text to draw. Any drawing effects that do not inherit from ID2D1Resource are ignored. If there are drawing effects that inherit from ID2D1Resource that are not brushes, this method fails and the render target is put in an error state. - The brush used to paint the text. - The values for context-fill, context-stroke, and context-value that are used when rendering SVG glyphs. - The index used to select a color palette within a color font. - A value that indicates whether the text should be snapped to pixel boundaries and whether the text should be clipped to the layout rectangle. - The default value is D2D1_DRAW_TEXT_OPTIONS_NONE, - which indicates that text should be snapped to pixel boundaries and it should not be clipped to the layout rectangle. - - - - - Creates a sequence of cubic Bezier curves and adds them to the geometry sink. - Microsoft Docs: - A pointer to an array of Bezier segments that describes the Bezier curves to create. A curve is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by BeginFigure) to the end point of the first Bezier segment in the array. if the array contains additional Bezier segments, each subsequent Bezier segment uses the end point of the preceding Bezier segment as its start point. - The number of Bezier segments in the beziers array. - - - - - Sets what units will be used to interpret values passed into the device context. - Microsoft Docs: - An enumeration defining how passed-in units will be interpreted by the device context. - - - - - Allows a custom effect's interface and behavior to be specified by the effect author. - Microsoft Docs: - - - - - Controls option flags for a new ID2D1ImageSource when it is created. - Microsoft Docs: - - - - No options are used. - - - Indicates the image source should release its reference to the WIC bitmap source after it has initialized. - By default, the image source retains a reference to the WIC bitmap source for the lifetime of the object to enable quality and speed optimizations for printing. - This option disables that optimization. - - - Indicates the image source should only populate subregions of the image cache on-demand. You can control this behavior using - the EnsureCached - and TrimCache methods. - This options provides the ability to improve memory usage by only keeping needed portions of the image in memory. - This option requires that the image source has a reference to the WIC bitmap source, and is incompatible with D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE. - - - - Sets the output node for the transform graph. - Microsoft Docs: - The node that will be considered the output of the transform node. - - - - - Gets the extend mode of the image brush on the y-axis of the image. - Microsoft Docs: - - - - - Draws an image to the device context using the specified blend mode. Results are equivalent to using Direct2D's built-in Blend effect. - Microsoft Docs: - The image to be drawn to the device context. - The blend mode to be used. See Blend modes for more info. - The offset in the destination space that the image will be rendered to. - The entire logical extent of the image will be rendered to the corresponding destination. - If not specified, the destination origin will be (0, 0). - The top-left corner of the image will be mapped to the target offset. - This will not necessarily be the origin. The default value is NULL. - The corresponding rectangle in the image space will be mapped to the given origins when processing the image. The default value is NULL. - The interpolation mode that will be used to scale the image if necessary. The default value is D2D1_INTERPOLATION_MODE_LINEAR. - - -
\ No newline at end of file diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/Apis.Functions.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/Apis.Functions.cs new file mode 100644 index 0000000..1f60f53 --- /dev/null +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/Apis.Functions.cs @@ -0,0 +1,19 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace Win32.Graphics.Direct3D.Dxc; + +public static unsafe partial class Apis +{ + [DllImport("dxcompiler.dll", ExactSpelling = true)] + public static extern HResult DxcCreateInstance(Guid* rclsid, Guid* riid, void** ppv); + + [DllImport("dxcompiler.dll", ExactSpelling = true)] + public static extern HResult DxcCreateInstance2(Com.IMalloc* pMalloc, Guid* rclsid, Guid* riid, void** ppv); +} diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/Apis.cs new file mode 100644 index 0000000..2dc1af1 --- /dev/null +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/Apis.cs @@ -0,0 +1,320 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace Win32.Graphics.Direct3D.Dxc; + +public static partial class Apis +{ + public const string DXC_ARG_DEBUG = "-Zi"; + + public const string DXC_ARG_SKIP_VALIDATION = "-Vd"; + + public const string DXC_ARG_SKIP_OPTIMIZATIONS = "-Od"; + + public const string DXC_ARG_PACK_MATRIX_ROW_MAJOR = "-Zpr"; + + public const string DXC_ARG_PACK_MATRIX_COLUMN_MAJOR = "-Zpc"; + + public const string DXC_ARG_AVOID_FLOW_CONTROL = "-Gfa"; + + public const string DXC_ARG_PREFER_FLOW_CONTROL = "-Gfp"; + + public const string DXC_ARG_ENABLE_STRICTNESS = "-Ges"; + + public const string DXC_ARG_ENABLE_BACKWARDS_COMPATIBILITY = "-Gec"; + + public const string DXC_ARG_IEEE_STRICTNESS = "-Gis"; + + public const string DXC_ARG_OPTIMIZATION_LEVEL0 = "-O0"; + + public const string DXC_ARG_OPTIMIZATION_LEVEL1 = "-O1"; + + public const string DXC_ARG_OPTIMIZATION_LEVEL2 = "-O2"; + + public const string DXC_ARG_OPTIMIZATION_LEVEL3 = "-O3"; + + public const string DXC_ARG_WARNINGS_ARE_ERRORS = "-WX"; + + public const string DXC_ARG_RESOURCES_MAY_ALIAS = "-res_may_alias"; + + public const string DXC_ARG_ALL_RESOURCES_BOUND = "-all_resources_bound"; + + public const string DXC_ARG_DEBUG_NAME_FOR_SOURCE = "-Zss"; + + public const string DXC_ARG_DEBUG_NAME_FOR_BINARY = "-Zsb"; + + public const string DXC_EXTRA_OUTPUT_NAME_STDOUT = "*stdout*"; + + public const string DXC_EXTRA_OUTPUT_NAME_STDERR = "*stderr*"; + + public static ref readonly Guid CLSID_DxcCompiler + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x93, 0x2D, 0xE2, 0x73, + 0xCE, 0xE6, + 0xF3, 0x47, + 0xB5, + 0xBF, + 0xF0, + 0x66, + 0x4F, + 0x39, + 0xC1, + 0xB0 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcLinker + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x87, 0x80, 0x6A, 0xEF, + 0xEA, 0xB0, + 0x56, 0x4D, + 0x9E, + 0x45, + 0xD0, + 0x7E, + 0x1A, + 0x8B, + 0x78, + 0x06 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcDiaDataSource + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x73, 0x6B, 0x1F, 0xCD, + 0xB0, 0x2A, + 0x4D, 0x48, + 0x8E, + 0xDC, + 0xEB, + 0xE7, + 0xA4, + 0x3C, + 0xA0, + 0x9F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcCompilerArgs + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x82, 0xAE, 0x56, 0x3E, + 0x4D, 0x22, + 0x0F, 0x47, + 0xA1, + 0xA1, + 0xFE, + 0x30, + 0x16, + 0xEE, + 0x9F, + 0x9D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcLibrary + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xAF, 0xD6, 0x45, 0x62, + 0xE0, 0x66, + 0xFD, 0x48, + 0x80, + 0xB4, + 0x4D, + 0x27, + 0x17, + 0x96, + 0x74, + 0x8C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcValidator + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x15, 0xE2, 0xA3, 0x8C, + 0x28, 0xF7, + 0xF3, 0x4C, + 0x8C, + 0xDD, + 0x88, + 0xAF, + 0x91, + 0x75, + 0x87, + 0xA1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcAssembler + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x68, 0xDB, 0x28, 0xD7, + 0x03, 0xF9, + 0x80, 0x4F, + 0x94, + 0xCD, + 0xDC, + 0xCF, + 0x76, + 0xEC, + 0x71, + 0x51 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcContainerReflection + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x89, 0x44, 0xF5, 0xB9, + 0xB8, 0x55, + 0x0C, 0x40, + 0xBA, + 0x3A, + 0x16, + 0x75, + 0xE4, + 0x72, + 0x8B, + 0x91 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcOptimizer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x9F, 0xD7, 0x2C, 0xAE, + 0x22, 0xCC, + 0x3F, 0x45, + 0x9B, + 0x6B, + 0xB1, + 0x24, + 0xE7, + 0xA5, + 0x20, + 0x4C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcContainerBuilder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x94, 0x42, 0x13, 0x94, + 0x1F, 0x41, + 0x74, 0x45, + 0xB4, + 0xD0, + 0x87, + 0x41, + 0xE2, + 0x52, + 0x40, + 0xD2 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_DxcPdbUtils + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xFB, 0x1D, 0x62, 0x54, + 0xCE, 0xF2, + 0x7E, 0x45, + 0xAE, + 0x8C, + 0xEC, + 0x35, + 0x5F, + 0xAE, + 0xEC, + 0x7C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } +} + diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcArgPair.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcArgPair.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcArgPair.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcArgPair.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcBuffer.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcBuffer.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcBuffer.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcBuffer.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcCp.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcCp.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcCp.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcCp.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcDefine.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcDefine.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcDefine.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcDefine.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcHashFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcHashFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcHashFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcHashFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcOutKind.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcOutKind.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcOutKind.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcOutKind.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcShaderHash.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcShaderHash.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcShaderHash.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcShaderHash.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcValidatorFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcValidatorFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcValidatorFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcValidatorFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DxcVersionInfoFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcVersionInfoFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DxcVersionInfoFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/DxcVersionInfoFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcAssembler.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcAssembler.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcAssembler.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcAssembler.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlob.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlob.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlob.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlob.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlobEncoding.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlobEncoding.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlobEncoding.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlobEncoding.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlobUtf16.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlobUtf16.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlobUtf16.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlobUtf16.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlobUtf8.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlobUtf8.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcBlobUtf8.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcBlobUtf8.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompiler.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompiler.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompiler.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompiler.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompiler2.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompiler2.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompiler2.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompiler2.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompiler3.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompiler3.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompiler3.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompiler3.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompilerArgs.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompilerArgs.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcCompilerArgs.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcCompilerArgs.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcContainerBuilder.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcContainerBuilder.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcContainerBuilder.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcContainerBuilder.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcContainerReflection.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcContainerReflection.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcContainerReflection.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcContainerReflection.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcExtraOutputs.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcExtraOutputs.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcExtraOutputs.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcExtraOutputs.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcIncludeHandler.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcIncludeHandler.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcIncludeHandler.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcIncludeHandler.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcLibrary.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcLibrary.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcLibrary.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcLibrary.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcLinker.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcLinker.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcLinker.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcLinker.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcOperationResult.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcOperationResult.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcOperationResult.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcOperationResult.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcOptimizer.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcOptimizer.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcOptimizer.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcOptimizer.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcOptimizerPass.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcOptimizerPass.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcOptimizerPass.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcOptimizerPass.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcPdbUtils.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcPdbUtils.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcPdbUtils.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcPdbUtils.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcResult.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcResult.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcResult.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcResult.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcUtils.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcUtils.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcUtils.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcUtils.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcValidator.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcValidator.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcValidator.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcValidator.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcValidator2.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcValidator2.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcValidator2.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcValidator2.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcVersionInfo.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcVersionInfo.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcVersionInfo.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcVersionInfo.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcVersionInfo2.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcVersionInfo2.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcVersionInfo2.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcVersionInfo2.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcVersionInfo3.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcVersionInfo3.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/IDxcVersionInfo3.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Dxc/IDxcVersionInfo3.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/Apis.Functions.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/Apis.Functions.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/Apis.Functions.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/Apis.Functions.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/Apis.cs new file mode 100644 index 0000000..1952f93 --- /dev/null +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/Apis.cs @@ -0,0 +1,18 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace Win32.Graphics.Direct3D.Fxc; + +public static partial class Apis +{ + public const uint D3D_COMPILER_VERSION = 47; + + public const uint D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE = 1; +} + diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/BlobPart.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/BlobPart.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/BlobPart.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/BlobPart.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/CompileEffectFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileEffectFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/CompileEffectFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileEffectFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/CompileFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/CompileFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/CompileFlags2.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileFlags2.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/CompileFlags2.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileFlags2.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/CompileSecondaryFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileSecondaryFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/CompileSecondaryFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompileSecondaryFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/CompressShaderFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompressShaderFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/CompressShaderFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/CompressShaderFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/DisasmFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/DisasmFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/DisasmFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/DisasmFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/ShaderData.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/ShaderData.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/ShaderData.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/ShaderData.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/StripFlags.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/StripFlags.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Direct3D/StripFlags.cs rename to src/Vortice.Win32/Generated/Graphics/Direct3D.Fxc/StripFlags.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D/Apis.cs index 977f148..19bee0a 100644 --- a/src/Vortice.Win32/Generated/Graphics/Direct3D/Apis.cs +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D/Apis.cs @@ -7,13 +7,248 @@ // // ------------------------------------------------------------------------------ -namespace Win32.Graphics.Direct3D.Fxc; +namespace Win32.Graphics.Direct3D; public static partial class Apis { - public const uint D3D_COMPILER_VERSION = 47; + public const uint D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION = 2048; - public const uint D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE = 1; + public const uint D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION = 4096; + public const uint D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION = 2048; + + public const uint D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION = 4096; + + public const uint D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION = 512; + + public const uint D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION = 4096; + + public const uint D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 256; + + public const uint D3D_FL9_1_DEFAULT_MAX_ANISOTROPY = 2; + + public const uint D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT = 65535; + + public const uint D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT = 1048575; + + public const uint D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT = 1; + + public const uint D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT = 4; + + public const uint D3D_FL9_1_MAX_TEXTURE_REPEAT = 128; + + public const uint D3D_FL9_2_MAX_TEXTURE_REPEAT = 2048; + + public const uint D3D_FL9_3_MAX_TEXTURE_REPEAT = 8192; + + public const uint D3D_SHADER_FEATURE_DOUBLES = 1; + + public const uint D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X = 2; + + public const uint D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE = 4; + + public const uint D3D_SHADER_FEATURE_64_UAVS = 8; + + public const uint D3D_SHADER_FEATURE_MINIMUM_PRECISION = 16; + + public const uint D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS = 32; + + public const uint D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS = 64; + + public const uint D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING = 128; + + public const uint D3D_SHADER_FEATURE_TILED_RESOURCES = 256; + + public const uint D3D_SHADER_FEATURE_STENCIL_REF = 512; + + public const uint D3D_SHADER_FEATURE_INNER_COVERAGE = 1024; + + public const uint D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS = 2048; + + public const uint D3D_SHADER_FEATURE_ROVS = 4096; + + public const uint D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER = 8192; + + public const uint D3D_SHADER_FEATURE_WAVE_OPS = 16384; + + public const uint D3D_SHADER_FEATURE_INT64_OPS = 32768; + + public const uint D3D_SHADER_FEATURE_VIEW_ID = 65536; + + public const uint D3D_SHADER_FEATURE_BARYCENTRICS = 131072; + + public const uint D3D_SHADER_FEATURE_NATIVE_16BIT_OPS = 262144; + + public const uint D3D_SHADER_FEATURE_SHADING_RATE = 524288; + + public const uint D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 = 1048576; + + public const uint D3D_SHADER_FEATURE_SAMPLER_FEEDBACK = 2097152; + + public const uint D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE = 4194304; + + public const uint D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED = 8388608; + + public const uint D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS = 16777216; + + public const uint D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING = 33554432; + + public const uint D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING = 67108864; + + public const uint D3D_SHADER_FEATURE_WAVE_MMA = 134217728; + + public const uint D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE = 268435456; + + public static ref readonly Guid WKPDID_D3DDebugObjectName + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x22, 0x8C, 0x9B, 0x42, + 0x88, 0x91, + 0x0C, 0x4B, + 0x87, + 0x42, + 0xAC, + 0xB0, + 0xBF, + 0x85, + 0xC2, + 0x00 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid WKPDID_D3DDebugObjectNameW + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xD8, 0x5F, 0xCA, 0x4C, + 0x1F, 0x92, + 0xC8, 0x42, + 0x85, + 0x66, + 0x70, + 0xCA, + 0xF2, + 0xA9, + 0xB7, + 0x41 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid WKPDID_CommentStringW + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC0, 0x9D, 0x14, 0xD0, + 0xE8, 0x90, + 0xC8, 0x4E, + 0x81, + 0x44, + 0xE9, + 0x00, + 0xAD, + 0x26, + 0x6B, + 0xB2 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid WKPDID_D3D12UniqueObjectId + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x15, 0xDE, 0x39, 0x1B, + 0x04, 0xEC, + 0xAE, 0x4B, + 0xBA, + 0x4D, + 0x8C, + 0xEF, + 0x79, + 0xFC, + 0x04, + 0xC1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public const uint D3D_COMPONENT_MASK_X = 1; + + public const uint D3D_COMPONENT_MASK_Y = 2; + + public const uint D3D_COMPONENT_MASK_Z = 4; + + public const uint D3D_COMPONENT_MASK_W = 8; + + public static ref readonly Guid D3D_TEXTURE_LAYOUT_ROW_MAJOR + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x4F, 0x23, 0xDC, 0xB5, + 0xBB, 0x72, + 0xEC, 0x4B, + 0x97, + 0x05, + 0x8C, + 0xF2, + 0x58, + 0xDF, + 0x6B, + 0x6C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE3, 0x29, 0x0F, 0x4C, + 0x5F, 0x3F, + 0x35, 0x4D, + 0x84, + 0xC9, + 0xBC, + 0x09, + 0x83, + 0xB6, + 0x2C, + 0x28 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } } diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D/Direct3D.xml b/src/Vortice.Win32/Generated/Graphics/Direct3D/Direct3D.xml deleted file mode 100644 index 181a36a..0000000 --- a/src/Vortice.Win32/Generated/Graphics/Direct3D/Direct3D.xml +++ /dev/null @@ -1,4097 +0,0 @@ - - - - - The ID3DDeviceContextState interface represents a context state object, which holds state and behavior information about a Microsoft Direct3D device. - Microsoft Docs: - - - - - Marks a single point of execution in code. - Microsoft Docs: - A NULL-terminated UNICODE string that contains the name of the marker. The name is not relevant to the operating system. You can choose a name that is meaningful when the calling application is running under the Direct3D profiling tool. -A NULL pointer produces undefined results. - - - - - Retrieves a specific part from a compilation result. - Microsoft Docs: - A pointer to uncompiled shader data; either ASCII HLSL code or a compiled effect. - Length of uncompiled shader data that pSrcData points to. - A D3D_BLOB_PART-typed value that specifies the part of the buffer to retrieve. - Flags that indicate how to retrieve the blob part. Currently, no flags are defined. - The address of a pointer to the ID3DBlob interface that is used to retrieve the specified part of the buffer. - - - - - Marks the beginning of a section of event code. - Microsoft Docs: - A NULL-terminated UNICODE string that contains the name of the event. The name is not relevant to the operating system. You can choose a name that is meaningful when the calling application is running under the Direct3D profiling tool. -A NULL pointer produces undefined results. - - - - - Gets a pointer to a reflection interface. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Length of pSrcData. - The reference GUID of the COM interface to use. For example, IID_ID3D11ShaderReflection. - A pointer to a reflection interface. - - - - - Note  You can use this API to develop your Windows Store apps, but you can't use it in apps that you submit to the Windows Store. Gets shader debug information. - Microsoft Docs: - A pointer to source data; either uncompiled or compiled HLSL code. - Length of pSrcData. - A pointer to a buffer that receives the ID3DBlob interface that contains debug information. - - - - - Creates a linker interface. Note  This function is part of the HLSL shader linking technology that you can use on all Direct3D 11 platforms to create precompiled HLSL functions, package them into libraries, and link them into full shaders at run time.  . - Microsoft Docs: - A pointer to a variable that receives a pointer to the ID3D11Linker interface that is used to link a shader module. - - - - - Describes shader data. - Microsoft Docs: - - - - A pointer to shader data. - - - Length of shader data that pBytecode points to. - - - - Compresses a set of shaders into a more compact form. - Microsoft Docs: - The number of shaders to compress. - An array of D3D_SHADER_DATA structures that describe the set of shaders to compress. - Flags that indicate how to compress the shaders. Currently, only the D3D_COMPRESS_SHADER_KEEP_ALL_PARTS (0x00000001) flag is defined. - The address of a pointer to the ID3DBlob interface that is used to retrieve the compressed shader data. - - - - - Pixel shader driver caps. - Microsoft Docs: - - - - Instruction predication is supported if this value is nonzero. See setp_comp - vs. - - - Either 0 or 24, which represents the depth of the dynamic flow control instruction nesting. See D3DPSHADERCAPS2_0. - - - The number of temporary registers supported. See D3DPSHADERCAPS2_0. - - - The depth of nesting of the loop - vs/rep - vs and call - vs/callnz bool - vs instructions. See D3DPSHADERCAPS2_0. - - - The number of instruction slots supported. See D3DPSHADERCAPS2_0. - - - - Values that identify parts of the content of an arbitrary length data buffer. - Microsoft Docs: - - - - The blob part is an input signature. - - - The blob part is an output signature. - - - The blob part is an input and output signature. - - - The blob part is a patch constant signature. - - - The blob part is all signature. - - - The blob part is debug information. - - - The blob part is a legacy shader. - - - The blob part is an XNA prepass shader. - - - The blob part is an XNA shader. - - - The blob part is program database (PDB) information. - -
Note  This value is supported by the D3dcompiler_44.dll or later version of the file.
-
 
-
- - The blob part is private data. - -
Note  This value is supported by the D3dcompiler_44.dll or later version of the file.
-
 
-
- - The blob part is a root signature. Refer to Specifying Root Signatures in HLSL for more information on using Direct3D12 with HLSL. - -
Note  This value is supported by the D3dcompiler_47.dll or later version of the file.
-
 
-
- - The blob part is the debug name of the shader. If the application does not specify the debug name itself, an auto-generated name matching the PDB file of the shader is provided instead. - -
Note  This value is supported by the D3dcompiler_47.dll as available on the Windows 10 Fall Creators Update and its SDK, or later version of the file.
-
 
-
- - The blob part is a test alternate shader. - -
Note  This value identifies a test part and is only produced by special compiler versions. Therefore, this part type is typically not present in shaders.
-
 
-
- - The blob part is test compilation details. - -
Note  This value identifies a test part and is only produced by special compiler versions. Therefore, this part type is typically not present in shaders.
-
 
-
- - The blob part is test compilation performance. - -
Note  This value identifies a test part and is only produced by special compiler versions. Therefore, this part type is typically not present in shaders.
-
 
-
- - The blob part is a test compilation report. - -
Note  This value identifies a test part and is only produced by special compiler versions. Therefore, this part type is typically not present in shaders.
-
 
-
Note  This value is supported by the D3dcompiler_44.dll or later version of the file.
-
 
-
- - - Compiles Microsoft High Level Shader Language (HLSL) code into bytecode for a given target. - Microsoft Docs: - A pointer to uncompiled shader data (ASCII HLSL code). - The size, in bytes, of the block of memory that pSrcData points to. - An optional pointer to a constant null-terminated string containing the name that identifies the source data to use in error messages. If not used, set to NULL. - An optional array of D3D_SHADER_MACRO structures that define shader macros. Each macro definition contains a name and a NULL-terminated definition. If not used, set to NULL. - A pointer to an ID3DInclude interface that the compiler uses to handle include files. If you set this parameter to NULL and the shader contains a #include, a compile error occurs. You can pass the D3D_COMPILE_STANDARD_FILE_INCLUDE macro, which is a pointer to a default include handler. This default include handler includes files that are relative to the current directory and files that are relative to the directory of the initial source file. When you use D3D_COMPILE_STANDARD_FILE_INCLUDE, you must specify the source file name in the pSourceName parameter; the compiler will derive the initial relative directory from pSourceName. - - -``` - A pointer to a constant null-terminated string that contains the name of the shader entry point function where shader execution begins. When you compile an effect, D3DCompile2 ignores pEntrypoint; we recommend that you set pEntrypoint to NULL because it is good programming practice to set a pointer parameter to NULL if the called function will not use it. - A pointer to a constant null-terminated string that specifies the shader target or set of shader features to compile against. The shader target can be a shader model (for example, shader model 2, shader model 3, shader model 4, or shader model 5). The target can also be an effect type (for example, fx_4_1). For info about the targets that various profiles support, see Specifying Compiler Targets. - A combination of shader D3D compile constants that are combined by using a bitwise OR operation. The resulting value specifies how the compiler compiles the HLSL code. - A combination of effect D3D compile effect constants that are combined by using a bitwise OR operation. The resulting value specifies how the compiler compiles the effect. When you compile a shader and not an effect file, D3DCompile2 ignores Flags2; we recommend that you set Flags2 to zero because it is good programming practice to set a nonpointer parameter to zero if the called function will not use it. - A combination of the following flags that are combined by using a bitwise OR operation. The resulting value specifies how the compiler compiles the HLSL code. - - - - - - - - - - - - - - - - - - -
FlagDescription
D3DCOMPILE_SECDATA_MERGE_UAV_SLOTS (0x01)Merge unordered access view (UAV) slots in the secondary data that the pSecondaryData parameter points to.
D3DCOMPILE_SECDATA_PRESERVE_TEMPLATE_SLOTS (0x02)Preserve template slots in the secondary data that the pSecondaryData parameter points to.
D3DCOMPILE_SECDATA_REQUIRE_TEMPLATE_MATCH (0x04)Require that templates in the secondary data that the pSecondaryData parameter points to match when the compiler compiles the HLSL code.
-  - -If pSecondaryData is NULL, set to zero. - A pointer to secondary data. If you don't pass secondary data, set to NULL. Use this secondary data to align UAV slots in two shaders. Suppose shader A has UAVs and they are bound to some slots. To compile shader B such that UAVs with the same names are mapped in B to the same slots as in A, pass A’s byte code to D3DCompile2 as the secondary data. - The size, in bytes, of the block of memory that pSecondaryData points to. If pSecondaryData is NULL, set to zero. - A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access the compiled code. - A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access compiler error messages, or NULL if there are no errors. -
-
- - - Specifies hardware overlay capabilities for a Direct3D device. - Microsoft Docs: - - - - Contains a bitwise OR of the following flags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DOVERLAYCAPS_FULLRANGERGB
-
0x00000001
-
-
-The overlay supports RGB with a nominal range of 0–255 per channel. - -
-
D3DOVERLAYCAPS_LIMITEDRANGERGB
-
0x00000002
-
-
-The overlay supports RGB with a nominal range of 16–235 per channel. Reference black is (16,16,16) and reference white is (235,235,235). - -
-
D3DOVERLAYCAPS_YCbCr_BT601
-
0x00000004
-
-
-The overlay supports the BT.601 definition of YUV. - -
-
D3DOVERLAYCAPS_YCbCr_BT709
-
0x00000008
-
-
-The overlay supports the BT.709 definition of YUV. - -
-
D3DOVERLAYCAPS_YCbCr_BT601_xvYCC
-
0x00000010
-
-
-The overlay supports extended YCbCr (xvYCC) for BT.601 YUV. - -
-
D3DOVERLAYCAPS_YCbCr_BT709_xvYCC
-
0x00000020
-
-
-The overlay supports extended YCbCr (xvYCC) for BT.709 YUV. - -
-
D3DOVERLAYCAPS_STRETCHX
-
0x00000040
-
-
-The device can stretch and shrink the overlay data arbitrarily in the horizontal direction. - -
-
D3DOVERLAYCAPS_STRETCHY
-
0x00000080
-
-
-The device can stretch and shrink the overlay data arbitrarily in the vertical direction. - -
-
- - The maximum overlay width after stretching. - - - The maximum overlay height after stretching. - - - - Values that identify the intended use of constant-buffer data. - Microsoft Docs: - - - - A buffer containing scalar constants. - - - A buffer containing texture data. - - - A buffer containing interface pointers. - - - A buffer containing binding information. - - - A buffer containing scalar constants. - - - A buffer containing texture data. - - - A buffer containing scalar constants. - - - A buffer containing texture data. - - - A buffer containing interface pointers. - - - A buffer containing binding information. - - - - Disassembles a specific region of compiled Microsoft High Level Shader Language (HLSL) code. - Microsoft Docs: - A pointer to compiled shader data. - The size, in bytes, of the block of memory that pSrcData points to. - A combination of zero or more of the following flags that are combined by using a bitwise OR operation. The resulting value specifies how D3DDisassembleRegion disassembles the compiled shader data. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FlagDescription
D3D_DISASM_ENABLE_COLOR_CODE (0x01)Enable the output of color codes.
D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS (0x02)Enable the output of default values.
D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING (0x04)Enable instruction numbering.
D3D_DISASM_ENABLE_INSTRUCTION_CYCLE (0x08)No effect.
D3D_DISASM_DISABLE_DEBUG_INFO (0x10)Disable the output of debug information.
D3D_DISASM_ENABLE_INSTRUCTION_OFFSET (0x20)Enable the output of instruction offsets.
D3D_DISASM_INSTRUCTION_ONLY (0x40)This flag has no effect in D3DDisassembleRegion. Cycle information comes from the trace; therefore, cycle information is available only in D3DDisassemble11Trace's trace disassembly.
- A pointer to a constant null-terminated string at the top of the shader that identifies the shader constants and variables. - The number of bytes offset into the compiled shader data where D3DDisassembleRegion starts the disassembly. - The number of instructions to disassemble. - A pointer to a variable that receives the number of bytes offset into the compiled shader data where D3DDisassembleRegion finishes the disassembly. - A pointer to a buffer that receives the ID3DBlob interface that accesses the disassembled HLSL code. -
-
- - - ID3DInclude is an include interface that the user implements to allow an application to call user-overridable methods for opening and closing shader - Microsoft Docs: - - - - - Note  D3DGetInputAndOutputSignatureBlob may be altered or unavailable for releases after Windows 8.1. Instead use D3DGetBlobPart with the D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB value.  Gets the input and output signatures from a compilation result. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Length of pSrcData. - A pointer to a buffer that receives the ID3DBlob interface that contains a compiled shader. - - - - - Strip flag options. - Microsoft Docs: - - - - Remove reflection data. - - - Remove debug information. - - - Remove test blob data. - - -
Note  This value is supported by the D3dcompiler_44.dll or later version of the file.
-
 
-Remove private data.
-
- -
Note  This value is supported by the D3dcompiler_47.dll or later version of the file.
-
 
-Remove the root signature. Refer to Specifying Root Signatures in HLSL for more information on using Direct3D12 with HLSL.
-
- - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used. - - - - The ID3DUserDefinedAnnotation interface enables an application to describe conceptual sections and markers within the application's code flow. - Microsoft Docs: - - - - - Creates a buffer. - Microsoft Docs: - Number of bytes in the blob. - The address of a pointer to the ID3DBlob interface that is used to retrieve the buffer. - - - - - Creates a library-reflection interface from source data that contains an HLSL library of functions. - Microsoft Docs: - A pointer to source data as an HLSL library of functions. - The size, in bytes, of the block of memory that pSrcData points to. - The reference GUID of the COM interface to use. For example, IID_ID3D11LibraryReflection. - A pointer to a variable that receives a pointer to a library-reflection interface, ID3D11LibraryReflection. - - - - - Specifies a shader model. - Microsoft Docs: - - - - Indicates shader model 5.1. - - - Indicates shader model 6.0. - - - Indicates shader model 6.1. - - - - Describes the content protection capabilities of a display driver. - Microsoft Docs: - - - - Bitwise OR of zero or more flags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DCPCAPS_SOFTWARE
-
0x00000001
-
-
-The encryption is implemented in software by the driver. - -
-
D3DCPCAPS_HARDWARE
-
0x00000002
-
-
-The encryption is implemented in hardware by the GPU. - -
-
D3DCPCAPS_PROTECTIONALWAYSON
-
0x00000004
-
-
-Content protection is always applied to a protected Direct3D surface, regardless of whether the application explicitly enables content protection. - -
-
D3DCPCAPS_PARTIALDECRYPTION
-
0x00000008
-
-
-The driver can use partially encrypted buffers. If this capability is not present, the entire buffer must be either encrypted or clear. - -
-
D3DCPCAPS_CONTENTKEY
-
0x00000010
-
-
-The driver can encrypt data using a separate content key that is encrypted using the session key. For more information, see IDirect3DCryptoSession9::DecryptionBlt. - -
-
D3DCPCAPS_FRESHENSESSIONKEY
-
0x00000020
-
-
-The driver can refresh the session key without renegotiating the key. To refresh the session key, call IDirect3DCryptoSession9::StartSessionKeyRefresh. - -
-
D3DCPCAPS_ENCRYPTEDREADBACK
-
0x00000040
-
-
-The driver can read back encrypted data from a protected surface, using the IDirect3DCryptoSession9::EncryptionBlt method. - -
-
D3DCPCAPS_ENCRYPTEDREADBACKKEY
-
0x00000080
-
-
-The driver requires a separate key to read encrypted data from a protected surface. To get this second key, call IDirect3DCryptoSession9::GetEncryptionBltKey. - -
-
D3DCPCAPS_SEQUENTIAL_CTR_IV
-
0x00000100
-
-
-If the encryption type is D3DCRYPTOTYPE_AES128_CTR, the application must use a sequential count in the DXVA2_AES_CTR_IV structure. For more information, see the remarks for DXVA2_AES_CTR_IV. - -
-
- - Specifies the type of key exchange required to negotiate the session key. The following GUIDs are defined. - - - - - - - - - - - - - - -
ValueMeaning
-
D3DKEYEXCHANGE_RSAES_OAEP
-
-
-The decoder encrypts the session key using RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP). - -
-
D3DKEYEXCHANGE_DXVA
-
-
-Use the key exchange mechanism defined for DirectX Video Acceleration 2 (DXVA-2). - -
-
- - The memory alignment required for buffers used by the GPU cryptographic engine. If the application uses a system memory buffer to pass encrypted content to the GPU, or to read back encrypted content from the GPU, the buffer's starting address must be a multiple of this value. - - - The block alignment required by the GPU cryptographic engine. The size of data to be encrypted must be a multiple of this value. - - - The total amount of memory that can be used to hold protected surfaces. - - - - Values that identify the data types that can be stored in a register. - Microsoft Docs: - - - - The data type is unknown. - - - 32-bit unsigned integer. - - - 32-bit signed integer. - - - 32-bit floating-point number. - - - The data type is unknown. - - - 32-bit unsigned integer. - - - 32-bit signed integer. - - - 32-bit floating-point number. - - - - Note  D3DGetInputSignatureBlob may be altered or unavailable for releases after Windows 8.1. Instead use D3DGetBlobPart with the D3D_BLOB_INPUT_SIGNATURE_BLOB value.  Gets the input signature from a compilation result. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Length of pSrcData. - A pointer to a buffer that receives the ID3DBlob interface that contains a compiled shader. - - - - - Values that identify the indended use of a constant-data buffer. - Microsoft Docs: - - - - Bind the constant buffer to an input slot defined in HLSL code (instead of letting the compiler choose the input slot). - - - Bind the constant buffer to an input slot defined in HLSL code (instead of letting the compiler choose the input slot). - - - This value is not used by a programmer; it exists to force the enumeration to compile to 32 bits. - - - - A user-implemented method for opening and reading the contents of a shader - Microsoft Docs: - A D3D_INCLUDE_TYPE-typed value that indicates the location of the #include file. - Name of the #include file. - Pointer to the container that includes the #include file. The compiler might pass NULL in pParentData. For more information, see the "Searching for Include Files" section in Compile an Effect (Direct3D 11). - Pointer to the buffer that contains the include directives. This pointer remains valid until you callID3DInclude::Close. - Pointer to the number of bytes that Open returns in ppData. - - - - - Note  D3DGetOutputSignatureBlob may be altered or unavailable for releases after Windows 8.1. Instead use D3DGetBlobPart with the D3D_BLOB_OUTPUT_SIGNATURE_BLOB value.  Gets the output signature from a compilation result. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Length of pSrcData. - A pointer to a buffer that receives the ID3DBlob interface that contains a compiled shader. - - - - - Values that identify the type of resource to be viewed as a shader resource. - Microsoft Docs: - - - - The type is unknown. - - - The resource is a buffer. - - - The resource is a 1D texture. - - - The resource is an array of 1D textures. - - - The resource is a 2D texture. - - - The resource is an array of 2D textures. - - - The resource is a multisampling 2D texture. - - - The resource is an array of multisampling 2D textures. - - - The resource is a 3D texture. - - - The resource is a cube texture. - - - The resource is an array of cube textures. - - - The resource is a raw buffer. For more info about raw viewing of buffers, see Raw Views of Buffers. - - - The type is unknown. - - - The resource is a buffer. - - - The resource is a 1D texture. - - - The resource is an array of 1D textures. - - - The resource is a 2D texture. - - - The resource is an array of 2D textures. - - - The resource is a multisampling 2D texture. - - - The resource is an array of multisampling 2D textures. - - - The resource is a 3D texture. - - - The resource is a cube texture. - - - The type is unknown. - - - The resource is a buffer. - - - The resource is a 1D texture. - - - The resource is an array of 1D textures. - - - The resource is a 2D texture. - - - The resource is an array of 2D textures. - - - The resource is a multisampling 2D texture. - - - The resource is an array of multisampling 2D textures. - - - The resource is a 3D texture. - - - The resource is a cube texture. - - - The resource is an array of cube textures. - - - The type is unknown. - - - The resource is a buffer. - - - The resource is a 1D texture. - - - The resource is an array of 1D textures. - - - The resource is a 2D texture. - - - The resource is an array of 2D textures. - - - The resource is a multisampling 2D texture. - - - The resource is an array of multisampling 2D textures. - - - The resource is a 3D texture. - - - The resource is a cube texture. - - - The resource is an array of cube textures. - - - The resource is a raw buffer. For more info about raw viewing of buffers, see Raw Views of Buffers. - - - - Disassembles a section of compiled Microsoft High Level Shader Language (HLSL) code that is specified by shader trace steps. - Microsoft Docs: - A pointer to compiled shader data. - The size, in bytes, of the block of memory that pSrcData points to. - A pointer to the ID3D11ShaderTrace interface for the shader trace information object. - The number of the step in the trace from which D3DDisassemble11Trace starts the disassembly. - The number of trace steps to disassemble. - A combination of zero or more of the following flags that are combined by using a bitwise OR operation. The resulting value specifies how D3DDisassemble11Trace disassembles the compiled shader data. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FlagDescription
D3D_DISASM_ENABLE_COLOR_CODE (0x01) Enable the output of color codes.
D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS (0x02) Enable the output of default values.
D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING (0x04) Enable instruction numbering.
D3D_DISASM_ENABLE_INSTRUCTION_CYCLE (0x08) No effect.
D3D_DISASM_DISABLE_DEBUG_INFO (0x10) Disable the output of debug information.
D3D_DISASM_ENABLE_INSTRUCTION_OFFSET (0x20) Enable the output of instruction offsets.
D3D_DISASM_INSTRUCTION_ONLY (0x40) -Enable the output of the instruction cycle per step in D3DDisassemble11Trace. This flag is similar to the D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING and D3D_DISASM_ENABLE_INSTRUCTION_OFFSET flags. - -This flag has no effect in the D3DDisassembleRegion function. Cycle information comes from the trace; therefore, cycle information is available only in the trace disassembly. -
- A pointer to a buffer that receives the ID3DBlob interface that accesses the disassembled HLSL code. -
-
- - - Values that indicate how the pipeline interprets vertex data that is bound to the input-assembler stage. These primitive topology values determine how the vertex data is rendered on screen. - Microsoft Docs: - - - - The IA stage has not been initialized with a primitive topology. The IA stage will not function properly unless a primitive topology is defined. - - - Interpret the vertex data as a list of points. - - - Interpret the vertex data as a list of lines. - - - Interpret the vertex data as a line strip. - - - Interpret the vertex data as a list of triangles. - - - Interpret the vertex data as a triangle strip. - - - Interpret the vertex data as a list of lines with adjacency data. - - - Interpret the vertex data as a line strip with adjacency data. - - - Interpret the vertex data as a list of triangles with adjacency data. - - - Interpret the vertex data as a triangle strip with adjacency data. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - The IA stage has not been initialized with a primitive topology. The IA stage will not function properly unless a primitive topology is defined. - - - Interpret the vertex data as a list of points. - - - Interpret the vertex data as a list of lines. - - - Interpret the vertex data as a line strip. - - - Interpret the vertex data as a list of triangles. - - - Interpret the vertex data as a triangle strip. - - - Interpret the vertex data as a list of lines with adjacency data. - - - Interpret the vertex data as a line strip with adjacency data. - - - Interpret the vertex data as a list of triangles with adjacency data. - - - Interpret the vertex data as a triangle strip with adjacency data. - - - The IA stage has not been initialized with a primitive topology. The IA stage will not function properly unless a primitive topology is defined. - - - Interpret the vertex data as a list of points. - - - Interpret the vertex data as a list of lines. - - - Interpret the vertex data as a line strip. - - - Interpret the vertex data as a list of triangles. - - - Interpret the vertex data as a triangle strip. - - - Interpret the vertex data as a list of lines with adjacency data. - - - Interpret the vertex data as a line strip with adjacency data. - - - Interpret the vertex data as a list of triangles with adjacency data. - - - Interpret the vertex data as a triangle strip with adjacency data. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - Interpret the vertex data as a patch list. - - - - Values that identify various data, texture, and buffer types that can be assigned to a shader variable. - Microsoft Docs: - - - - The variable is a void pointer. - - - The variable is a boolean. - - - The variable is an integer. - - - The variable is a floating-point number. - - - The variable is a string. - - - The variable is a texture. - - - The variable is a 1D texture. - - - The variable is a 2D texture. - - - The variable is a 3D texture. - - - The variable is a texture cube. - - - The variable is a sampler. - - - The variable is a 1D sampler. - - - The variable is a 2D sampler. - - - The variable is a 3D sampler. - - - The variable is a cube sampler. - - - The variable is a pixel shader. - - - The variable is a vertex shader. - - - The variable is a pixel fragment. - - - The variable is a vertex fragment. - - - The variable is an unsigned integer. - - - The variable is an 8-bit unsigned integer. - - - The variable is a geometry shader. - - - The variable is a rasterizer-state object. - - - The variable is a depth-stencil-state object. - - - The variable is a blend-state object. - - - The variable is a buffer. - - - The variable is a constant buffer. - - - The variable is a texture buffer. - - - The variable is a 1D-texture array. - - - The variable is a 2D-texture array. - - - The variable is a render-target view. - - - The variable is a depth-stencil view. - - - The variable is a 2D-multisampled texture. - - - The variable is a 2D-multisampled-texture array. - - - The variable is a texture-cube array. - - - The variable holds a compiled hull-shader binary. - - - The variable holds a compiled domain-shader binary. - - - The variable is an interface. - - - The variable holds a compiled compute-shader binary. - - - The variable is a double precision (64-bit) floating-point number. - - - The variable is a 1D read-and-write texture. - - - The variable is an array of 1D read-and-write textures. - - - The variable is a 2D read-and-write texture. - - - The variable is an array of 2D read-and-write textures. - - - The variable is a 3D read-and-write texture. - - - The variable is a read-and-write buffer. - - - The variable is a byte-address buffer. - - - The variable is a read-and-write byte-address buffer. - - - The variable is a structured buffer. - -For more information about structured buffer, see the Remarks section. - - - The variable is a read-and-write structured buffer. - - - The variable is an append structured buffer. - - - The variable is a consume structured buffer. - - - The variable is an 8-byte FLOAT. - - - The variable is a 10-byte FLOAT. - - - The variable is a 16-byte FLOAT. - - - The variable is a 12-byte INT. - - - The variable is a 16-byte INT. - - - The variable is a 16-byte INT. - - - The variable is a void pointer. - - - The variable is a boolean. - - - The variable is an integer. - - - The variable is a floating-point number. - - - The variable is a string. - - - The variable is a texture. - - - The variable is a 1D texture. - - - The variable is a 2D texture. - - - The variable is a 3D texture. - - - The variable is a texture cube. - - - The variable is a sampler. - - - The variable is a 1D sampler. - - - The variable is a 2D sampler. - - - The variable is a 3D sampler. - - - The variable is a cube sampler. - - - The variable is a pixel shader. - - - The variable is a vertex shader. - - - The variable is a pixel fragment. - - - The variable is a vertex fragment. - - - The variable is an unsigned integer. - - - The variable is an 8-bit unsigned integer. - - - The variable is a geometry shader. - - - The variable is a rasterizer-state object. - - - The variable is a depth-stencil-state object. - - - The variable is a blend-state object. - - - The variable is a buffer. - - - The variable is a constant buffer. - - - The variable is a texture buffer. - - - The variable is a 1D-texture array. - - - The variable is a 2D-texture array. - - - The variable is a render-target view. - - - The variable is a depth-stencil view. - - - The variable is a 2D-multisampled texture. - - - The variable is a 2D-multisampled-texture array. - - - The variable is a texture-cube array. - - - The variable holds a compiled hull-shader binary. - - - The variable holds a compiled domain-shader binary. - - - The variable is an interface. - - - The variable holds a compiled compute-shader binary. - - - The variable is a double precision (64-bit) floating-point number. - - - The variable is a 1D read-and-write texture. - - - The variable is an array of 1D read-and-write textures. - - - The variable is a 2D read-and-write texture. - - - The variable is an array of 2D read-and-write textures. - - - The variable is a 3D read-and-write texture. - - - The variable is a read-and-write buffer. - - - The variable is a byte-address buffer. - - - The variable is a read and write byte-address buffer. - - - The variable is a structured buffer. - - - The variable is a read-and-write structured buffer. - - - The variable is an append structured buffer. - - - The variable is a consume structured buffer. - - - This value is not used by a programmer; it exists to force the enumeration to compile to 32 bits. - - - - A user-implemented method for closing a shader - Microsoft Docs: - Pointer to the buffer that contains the include directives. This is the pointer that was returned by the corresponding ID3DInclude::Open call. - - - - - Specifies the version of root signature layout. - Microsoft Docs: - - - - Version one of root signature layout. - - - Version one of root signature layout. - - - Version 1.1 of root signature layout. Refer to Root Signature Version 1.1. - - - - Values that indicate the location of a shader - Microsoft Docs: - - - - The local directory. - - - The system directory. - - - The local directory. - - - The system directory. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. - -Do not use this value. - - - - Indicates semantic flags for function parameters. - Microsoft Docs: - - - - The parameter has no semantic flags. - - - Indicates an input parameter. - - - Indicates an output parameter. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used. - - - - Determines whether the calling application is running under a Microsoft Direct3D profiling tool. - Microsoft Docs: - - - - - Removes unwanted blobs from a compilation result. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Length of pSrcData. - Strip flag options, represented by D3DCOMPILER_STRIP_FLAGS. - A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access the unwanted stripped out shader code. - - - - - Creates a function-linking-graph interface. - Microsoft Docs: - Reserved - A pointer to a variable that receives a pointer to the ID3D11FunctionLinkingGraph interface that is used for constructing shaders that consist of a sequence of precompiled function calls. - - - - - Reads a file that is on disk into memory. - Microsoft Docs: - A pointer to a constant null-terminated string that contains the name of the file to read into memory. - A pointer to a variable that receives a pointer to the ID3DBlob interface that contains information that D3DReadFileToBlob read from the pFileName file. You can use this ID3DBlob interface to access the file information and pass it to other compiler functions. - - - - - Compiles Microsoft High Level Shader Language (HLSL) code into bytecode for a given target. - Microsoft Docs: - A pointer to a constant null-terminated string that contains the name of the file that contains the shader code. - An optional array of D3D_SHADER_MACRO structures that define shader macros. Each macro definition contains a name and a NULL-terminated definition. If not used, set to NULL. - An optional pointer to an ID3DInclude interface that the compiler uses to handle include files. If you set this parameter to NULL and the shader contains a #include, a compile error occurs. You can pass the D3D_COMPILE_STANDARD_FILE_INCLUDE macro, which is a pointer to a default include handler. This default include handler includes files that are relative to the current directory. - - -``` - A pointer to a constant null-terminated string that contains the name of the shader entry point function where shader execution begins. When you compile an effect, D3DCompileFromFile ignores pEntrypoint; we recommend that you set pEntrypoint to NULL because it is good programming practice to set a pointer parameter to NULL if the called function will not use it. - A pointer to a constant null-terminated string that specifies the shader target or set of shader features to compile against. The shader target can be a shader model (for example, shader model 2, shader model 3, shader model 4, or shader model 5 and later). The target can also be an effect type (for example, fx_4_1). For info about the targets that various profiles support, see Specifying Compiler Targets. - A combination of shader compile options that are combined by using a bitwise OR operation. The resulting value specifies how the compiler compiles the HLSL code. - A combination of effect compile options that are combined by using a bitwise OR operation. The resulting value specifies how the compiler compiles the effect. When you compile a shader and not an effect file, D3DCompileFromFile ignores Flags2; we recommend that you set Flags2 to zero because it is good programming practice to set a nonpointer parameter to zero if the called function will not use it. - A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access the compiled code. - An optional pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access compiler error messages, or NULL if there are no errors. - - - - - Marks the end of a section of event code. - Microsoft Docs: - - - - - Values that identify shader parameters that use system-value semantics. - Microsoft Docs: - - - - This parameter does not use a predefined system-value semantic. - - - This parameter contains position data. - - - This parameter contains clip-distance data. - - - This parameter contains cull-distance data. - - - This parameter contains a render-target-array index. - - - This parameter contains a viewport-array index. - - - This parameter contains a vertex ID. - - - This parameter contains a primitive ID. - - - This parameter contains an instance ID. - - - This parameter contains data that identifies whether or not the primitive faces the camera. - - - This parameter contains a sampler-array index. - - - This parameter contains one of four tessellation factors that correspond to the amount of parts that a quad patch is broken into along the given edge. This flag is used to tessellate a quad patch. - - - This parameter contains one of two tessellation factors that correspond to the amount of parts that a quad patch is broken into vertically and horizontally within the patch. This flag is used to tessellate a quad patch. - - - This parameter contains one of three tessellation factors that correspond to the amount of parts that a tri patch is broken into along the given edge. This flag is used to tessellate a tri patch. - - - This parameter contains the tessellation factor that corresponds to the amount of parts that a tri patch is broken into within the patch. This flag is used to tessellate a tri patch. - - - This parameter contains the tessellation factor that corresponds to the number of lines broken into within the patch. This flag is used to tessellate an isolines patch. - - - This parameter contains the tessellation factor that corresponds to the number of lines that are created within the patch. This flag is used to tessellate an isolines patch. - - - This parameter contains barycentric coordinate data. - - - This parameter contains render-target data. - - - This parameter contains depth data. - - - This parameter contains alpha-coverage data. - - - This parameter signifies that the value is greater than or equal to a reference value. This flag is used to specify conservative depth for a pixel shader. - - - This parameter signifies that the value is less than or equal to a reference value. This flag is used to specify conservative depth for a pixel shader. - - - This parameter contains a stencil reference. - See Shader Specified Stencil Reference Value. - - - This parameter contains inner input coverage data. - See Conservative Rasterization. - - - This parameter does not use a predefined system-value semantic. - - - This parameter contains position data. - - - This parameter contains clip-distance data. - - - This parameter contains cull-distance data. - - - This parameter contains a render-target-array index. - - - This parameter contains a viewport-array index. - - - This parameter contains a vertex ID. - - - This parameter contains a primitive ID. - - - This parameter contains a instance ID. - - - This parameter contains data that identifies whether or not the primitive faces the camera. - - - This parameter contains a sampler-array index. - - - This parameter contains render-target data. - - - This parameter contains depth data. - - - This parameter contains alpha-coverage data. - - - This parameter contains one of four tessellation factors that correspond to the amount of parts that a quad patch is broken into along the given edge. This flag is used to tessellate a quad patch. - - - This parameter contains one of two tessellation factors that correspond to the amount of parts that a quad patch is broken into vertically and horizontally within the patch. This flag is used to tessellate a quad patch. - - - This parameter contains one of three tessellation factors that correspond to the amount of parts that a tri patch is broken into along the given edge. This flag is used to tessellate a tri patch. - - - This parameter contains the tessellation factor that corresponds to the amount of parts that a tri patch is broken into within the patch. This flag is used to tessellate a tri patch. - - - This parameter contains the tessellation factor that corresponds to the amount of lines broken into within the patch. This flag is used to tessellate an isolines patch. - - - This parameter contains the tessellation factor that corresponds to the amount of lines that are created within the patch. This flag is used to tessellate an isolines patch. - - - This parameter signifies that the value is greater than or equal to a reference value. This flag is used to specify conservative depth for a pixel shader. - - - This parameter signifies that the value is less than or equal to a reference value. This flag is used to specify conservative depth for a pixel shader. - - - This parameter contains a stencil reference. - See Shader Specified Stencil Reference Value. - - - This parameter contains inner input coverage data. - See Conservative Rasterization. - - - This parameter contains barycentric coordinate data. - - - - Preprocesses uncompiled HLSL code. - Microsoft Docs: - A pointer to uncompiled shader data; either ASCII HLSL code or a compiled effect. - Length of pSrcData. - The name of the file that contains the uncompiled HLSL code. - An array of NULL-terminated macro definitions (see D3D_SHADER_MACRO). - A pointer to an ID3DInclude for handling include files. Setting this to NULL will cause a compile error if a shader contains a #include. You can pass the D3D_COMPILE_STANDARD_FILE_INCLUDE macro, which is a pointer to a default include handler. This default include handler includes files that are relative to the current directory and files that are relative to the directory of the initial source file. When you use D3D_COMPILE_STANDARD_FILE_INCLUDE, you must specify the source file name in the pSourceName parameter; the compiler will derive the initial relative directory from pSourceName. - - -```cpp - The address of a ID3DBlob that contains the compiled code. - A pointer to an ID3DBlob that contains compiler error messages, or NULL if there were no errors. - - - - - Compile HLSL code or an effect file into bytecode for a given target. - Microsoft Docs: - A pointer to uncompiled shader data; either ASCII HLSL code or a compiled effect. - Length of pSrcData. - You can use this parameter for strings that specify error messages. If not used, set to NULL. - An array of NULL-terminated macro definitions (see D3D_SHADER_MACRO). - Optional. A pointer to an ID3DInclude for handling include files. Setting this to NULL will cause a compile error if a shader contains a #include. You can pass the D3D_COMPILE_STANDARD_FILE_INCLUDE macro, which is a pointer to a default include handler. This default include handler includes files that are relative to the current directory and files that are relative to the directory of the initial source file. When you use D3D_COMPILE_STANDARD_FILE_INCLUDE, you must specify the source file name in the pSourceName parameter; the compiler will derive the initial relative directory from pSourceName. - - -```cpp - The name of the shader entry point function where shader execution begins. When you compile using a fx profile (for example, fx_4_0, fx_5_0, and so on), D3DCompile ignores pEntrypoint. In this case, we recommend that you set pEntrypoint to NULL because it is good programming practice to set a pointer parameter to NULL if the called function will not use it. For all other shader profiles, a valid pEntrypoint is required. - A string that specifies the shader target or set of shader features to compile against. The shader target can be shader model 2, shader model 3, shader model 4, or shader model 5. The target can also be an effect type (for example, fx_4_1). For info about the targets that various profiles support, see Specifying Compiler Targets. - Flags defined by D3D compile constants. - Flags defined by D3D compile effect constants. When you compile a shader and not an effect file, D3DCompile ignores Flags2; we recommend that you set Flags2 to zero because it is good programming practice to set a nonpointer parameter to zero if the called function will not use it. - A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access the compiled code. - A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access compiler error messages, or NULL if there are no errors. - - - - - Values that identify information about a shader variable. - Microsoft Docs: - - - - Indicates that the registers assigned to this shader variable were explicitly declared in shader code (instead of automatically assigned by the compiler). - - - Indicates that this variable is used by this shader. This value confirms that a particular shader variable (which can be common to many different shaders) is indeed used by a particular shader. - - - Indicates that this variable is an interface. - - - Indicates that this variable is a parameter of an interface. - - - Indicates that the registers assigned to this shader variable were explicitly declared in shader code (instead of automatically assigned by the compiler). - - - Indicates that this variable is used by this shader. This value confirms that a particular shader variable (which can be common to many different shaders) is indeed used by a particular shader. - - - Indicates that this variable is an interface. - - - Indicates that this variable is a parameter of an interface. - - - This value is not used by a programmer; it exists to force the enumeration to compile to 32 bits. - - - - Represents the capabilities of the hardware exposed through the Direct3D object. - Microsoft Docs: - - - - Member of the D3DDEVTYPE enumerated type, which identifies what type of resources are used for processing vertices. - - - Adapter on which this Direct3D device was created. This ordinal is valid only to pass to methods of the IDirect3D9 interface that created this Direct3D device. The IDirect3D9 interface can always be retrieved by calling GetDirect3D. - - - The following driver-specific capability. - - - - - - - - - - - - - - -
ValueMeaning
-
D3DCAPS_READ_SCANLINE
-
-
-Display hardware is capable of returning the current scan line. - -
-
D3DCAPS_OVERLAY
-
-
-The display driver supports an overlay DDI that allows for verification of overlay capabilities. For more information about the overlay DDI, see Overlay DDI. - - - - - - -
-Differences between Direct3D 9 and Direct3D 9Ex: - -This flag is available in Direct3D 9Ex only. - -
-  - - - -
-
- - Driver-specific capabilities identified in D3DCAPS2. - - - Driver-specific capabilities identified in D3DCAPS3. - - - -Bit mask of values representing what presentation swap intervals are available. - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPRESENT_INTERVAL_IMMEDIATE
-
-
-The driver supports an immediate presentation swap interval. - -
-
D3DPRESENT_INTERVAL_ONE
-
-
-The driver supports a presentation swap interval of every screen refresh. - -
-
D3DPRESENT_INTERVAL_TWO
-
-
-The driver supports a presentation swap interval of every second screen refresh. - -
-
D3DPRESENT_INTERVAL_THREE
-
-
-The driver supports a presentation swap interval of every third screen refresh. - -
-
D3DPRESENT_INTERVAL_FOUR
-
-
-The driver supports a presentation swap interval of every fourth screen refresh. - -
-
- - -Bit mask indicating what hardware support is available for cursors. Direct3D 9 does not define alpha-blending cursor capabilities. - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DCURSORCAPS_COLOR
-
-
-A full-color cursor is supported in hardware. Specifically, this flag indicates that the driver supports at least a hardware color cursor in high-resolution modes (with scan lines greater than or equal to 400). - -
-
D3DCURSORCAPS_LOWRES
-
-
-A full-color cursor is supported in hardware. Specifically, this flag indicates that the driver supports a hardware color cursor in both high-resolution and low-resolution modes (with scan lines less than 400). - -
-
- - -Flags identifying the capabilities of the device. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DDEVCAPS_CANBLTSYSTONONLOCAL
-
-
-Device supports blits from system-memory textures to nonlocal video-memory textures. - -
-
D3DDEVCAPS_CANRENDERAFTERFLIP
-
-
-Device can queue rendering commands after a page flip. Applications do not change their behavior if this flag is set; this capability means that the device is relatively fast. - -
-
D3DDEVCAPS_DRAWPRIMITIVES2
-
-
-Device can support at least a DirectX 5-compliant driver. - -
-
D3DDEVCAPS_DRAWPRIMITIVES2EX
-
-
-Device can support at least a DirectX 7-compliant driver. - -
-
D3DDEVCAPS_DRAWPRIMTLVERTEX
-
-
-Device exports an IDirect3DDevice9::DrawPrimitive-aware hal. - -
-
D3DDEVCAPS_EXECUTESYSTEMMEMORY
-
-
-Device can use execute buffers from system memory. - -
-
D3DDEVCAPS_EXECUTEVIDEOMEMORY
-
-
-Device can use execute buffers from video memory. - -
-
D3DDEVCAPS_HWRASTERIZATION
-
-
-Device has hardware acceleration for scene rasterization. - -
-
D3DDEVCAPS_HWTRANSFORMANDLIGHT
-
-
-Device can support transformation and lighting in hardware. - -
-
D3DDEVCAPS_NPATCHES
-
-
-Device supports N patches. - -
-
D3DDEVCAPS_PUREDEVICE
-
-
-Device can support rasterization, transform, lighting, and shading in hardware. - -
-
D3DDEVCAPS_QUINTICRTPATCHES
-
-
-Device supports quintic Bézier curves and B-splines. - -
-
D3DDEVCAPS_RTPATCHES
-
-
-Device supports rectangular and triangular patches. - -
-
D3DDEVCAPS_RTPATCHHANDLEZERO
-
-
-When this device capability is set, the hardware architecture does not require caching of any information, and uncached patches (handle zero) will be drawn as efficiently as cached ones. Note that setting D3DDEVCAPS_RTPATCHHANDLEZERO does not mean that a patch with handle zero can be drawn. A handle-zero patch can always be drawn whether this cap is set or not. - -
-
D3DDEVCAPS_SEPARATETEXTUREMEMORIES
-
-
-Device is texturing from separate memory pools. - -
-
D3DDEVCAPS_TEXTURENONLOCALVIDMEM
-
-
-Device can retrieve textures from non-local video memory. - -
-
D3DDEVCAPS_TEXTURESYSTEMMEMORY
-
-
-Device can retrieve textures from system memory. - -
-
D3DDEVCAPS_TEXTUREVIDEOMEMORY
-
-
-Device can retrieve textures from device memory. - -
-
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
-
-
-Device can use buffers from system memory for transformed and lit vertices. - -
-
D3DDEVCAPS_TLVERTEXVIDEOMEMORY
-
-
-Device can use buffers from video memory for transformed and lit vertices. - -
-
- - Miscellaneous driver primitive capabilities. See D3DPMISCCAPS. - - - -Information on raster-drawing capabilities. This member can be one or more of the following flags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPRASTERCAPS_ANISOTROPY
-
-
-Device supports anisotropic filtering. - -
-
D3DPRASTERCAPS_COLORPERSPECTIVE
-
-
-Device iterates colors perspective correctly. - -
-
D3DPRASTERCAPS_DITHER
-
-
-Device can dither to improve color resolution. - -
-
D3DPRASTERCAPS_DEPTHBIAS
-
-
-Device supports legacy depth bias. For true depth bias, see D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS. - -
-
D3DPRASTERCAPS_FOGRANGE
-
-
-Device supports range-based fog. In range-based fog, the distance of an object from the viewer is used to compute fog effects, not the depth of the object (that is, the z-coordinate) in the scene. - -
-
D3DPRASTERCAPS_FOGTABLE
-
-
-Device calculates the fog value by referring to a lookup table containing fog values that are indexed to the depth of a given pixel. - -
-
D3DPRASTERCAPS_FOGVERTEX
-
-
-Device calculates the fog value during the lighting operation and interpolates the fog value during rasterization. - -
-
D3DPRASTERCAPS_MIPMAPLODBIAS
-
-
-Device supports level-of-detail bias adjustments. These bias adjustments enable an application to make a mipmap appear crisper or less sharp than it normally would. For more information about level-of-detail bias in mipmaps, see D3DSAMP_MIPMAPLODBIAS. - -
-
D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
-
-
-Device supports toggling multisampling on and off between IDirect3DDevice9::BeginScene and IDirect3DDevice9::EndScene (using D3DRS_MULTISAMPLEANTIALIAS). - -
-
D3DPRASTERCAPS_SCISSORTEST
-
-
-Device supports scissor test. See Scissor Test (Direct3D 9). - -
-
D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
-
-
-Device performs true slope-scale based depth bias. This is in contrast to the legacy style depth bias. - -
-
D3DPRASTERCAPS_WBUFFER
-
-
-Device supports depth buffering using w. - -
-
D3DPRASTERCAPS_WFOG
-
-
-Device supports w-based fog. W-based fog is used when a perspective projection matrix is specified, but affine projections still use z-based fog. The system considers a projection matrix that contains a nonzero value in the [3][4] element to be a perspective projection matrix. - -
-
D3DPRASTERCAPS_ZBUFFERLESSHSR
-
-
-Device can perform hidden-surface removal (HSR) without requiring the application to sort polygons and without requiring the allocation of a depth-buffer. This leaves more video memory for textures. The method used to perform HSR is hardware-dependent and is transparent to the application. - -Z-bufferless HSR is performed if no depth-buffer surface is associated with the rendering-target surface and the depth-buffer comparison test is enabled (that is, when the state value associated with the D3DRS_ZENABLE enumeration constant is set to TRUE). - -
-
D3DPRASTERCAPS_ZFOG
-
-
-Device supports z-based fog. - -
-
D3DPRASTERCAPS_ZTEST
-
-
-Device can perform z-test operations. This effectively renders a primitive and indicates whether any z pixels have been rendered. - -
-
- - -Z-buffer comparison capabilities. This member can be one or more of the following flags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPCMPCAPS_ALWAYS
-
-
-Always pass the z-test. - -
-
D3DPCMPCAPS_EQUAL
-
-
-Pass the z-test if the new z equals the current z. - -
-
D3DPCMPCAPS_GREATER
-
-
-Pass the z-test if the new z is greater than the current z. - -
-
D3DPCMPCAPS_GREATEREQUAL
-
-
-Pass the z-test if the new z is greater than or equal to the current z. - -
-
D3DPCMPCAPS_LESS
-
-
-Pass the z-test if the new z is less than the current z. - -
-
D3DPCMPCAPS_LESSEQUAL
-
-
-Pass the z-test if the new z is less than or equal to the current z. - -
-
D3DPCMPCAPS_NEVER
-
-
-Always fail the z-test. - -
-
D3DPCMPCAPS_NOTEQUAL
-
-
-Pass the z-test if the new z does not equal the current z. - -
-
- - -Source-blending capabilities. This member can be one or more of the following flags. (The RGBA values of the source and destination are indicated by the subscripts s and d.) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPBLENDCAPS_BLENDFACTOR
-
-
-The driver supports both D3DBLEND_BLENDFACTOR and D3DBLEND_INVBLENDFACTOR. See D3DBLEND. - -
-
D3DPBLENDCAPS_BOTHINVSRCALPHA
-
-
-Source blend factor is (1 - Aₛ, 1 - Aₛ, 1 - Aₛ, 1 - Aₛ) and destination blend factor is (Aₛ, Aₛ, Aₛ, Aₛ); the destination blend selection is overridden. - -
-
D3DPBLENDCAPS_BOTHSRCALPHA
-
-
-The driver supports the D3DBLEND_BOTHSRCALPHA blend mode. (This blend mode is obsolete. For more information, see D3DBLEND.) - -
-
D3DPBLENDCAPS_DESTALPHA
-
-
-Blend factor is (Ad, Ad, Ad, Ad). - -
-
D3DPBLENDCAPS_DESTCOLOR
-
-
-Blend factor is (Rd, Gd, Bd, Ad). - -
-
D3DPBLENDCAPS_INVDESTALPHA
-
-
-Blend factor is (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad). - -
-
D3DPBLENDCAPS_INVDESTCOLOR
-
-
-Blend factor is (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad). - -
-
D3DPBLENDCAPS_INVSRCALPHA
-
-
-Blend factor is (1 - Aₛ, 1 - Aₛ, 1 - Aₛ, 1 - Aₛ). - -
-
D3DPBLENDCAPS_INVSRCCOLOR
-
-
-Blend factor is (1 - Rₛ, 1 - Gₛ, 1 - Bₛ, 1 - Aₛ). - -
-
D3DPBLENDCAPS_INVSRCCOLOR2
-
-
-Blend factor is (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, not used)). See Render Target Blending. - - - - - - -
-Differences between Direct3D 9 and Direct3D 9Ex: - -This flag is available in Direct3D 9Ex only. - -
-  - - - -
-
D3DPBLENDCAPS_ONE
-
-
-Blend factor is (1, 1, 1, 1). - -
-
D3DPBLENDCAPS_SRCALPHA
-
-
-Blend factor is (Aₛ, Aₛ, Aₛ, Aₛ). - -
-
D3DPBLENDCAPS_SRCALPHASAT
-
-
-Blend factor is (f, f, f, 1); f = min(Aₛ, 1 - Ad). - -
-
D3DPBLENDCAPS_SRCCOLOR
-
-
-Blend factor is (Rₛ, Gₛ, Bₛ, Aₛ). - -
-
D3DPBLENDCAPS_SRCCOLOR2
-
-
-Blend factor is (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, not used). See Render Target Blending. - - - - - - -
-Differences between Direct3D 9 and Direct3D 9Ex: - -This flag is available in Direct3D 9Ex only. - -
-  - - - -
-
D3DPBLENDCAPS_ZERO
-
-
-Blend factor is (0, 0, 0, 0). - -
-
- - Destination-blending capabilities. This member can be the same capabilities that are defined for the SrcBlendCaps member. - - - Alpha-test comparison capabilities. This member can include the same capability flags defined for the ZCmpCaps member. If this member contains only the D3DPCMPCAPS_ALWAYS capability or only the D3DPCMPCAPS_NEVER capability, the driver does not support alpha tests. Otherwise, the flags identify the individual comparisons that are supported for alpha testing. - - - Shading operations capabilities. It is assumed, in general, that if a device supports a given command at all, it supports the D3DSHADE_FLAT mode (as specified in the D3DSHADEMODE enumerated type). This flag specifies whether the driver can also support Gouraud shading and whether alpha color components are supported. When alpha components are not supported, the alpha value of colors generated is implicitly 255. This is the maximum possible alpha (that is, the alpha component is at full intensity). - -The color, specular highlights, fog, and alpha interpolants of a triangle each have capability flags that an application can use to find out how they are implemented by the device driver. - - -This member can be one or more of the following flags. - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPSHADECAPS_ALPHAGOURAUDBLEND
-
-
-Device can support an alpha component for Gouraud-blended transparency (the D3DSHADE_GOURAUD state for the D3DSHADEMODE enumerated type). In this mode, the alpha color component of a primitive is provided at vertices and interpolated across a face along with the other color components. - -
-
D3DPSHADECAPS_COLORGOURAUDRGB
-
-
-Device can support colored Gouraud shading. In this mode, the per-vertex color components (red, green, and blue) are interpolated across a triangle face. - -
-
D3DPSHADECAPS_FOGGOURAUD
-
-
-Device can support fog in the Gouraud shading mode. - -
-
D3DPSHADECAPS_SPECULARGOURAUDRGB
-
-
-Device supports Gouraud shading of specular highlights. - -
-
- - -Miscellaneous texture-mapping capabilities. This member can be one or more of the following flags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPTEXTURECAPS_ALPHA
-
-
-Alpha in texture pixels is supported. - -
-
D3DPTEXTURECAPS_ALPHAPALETTE
-
-
-Device can draw alpha from texture palettes. - -
-
D3DPTEXTURECAPS_CUBEMAP
-
-
-Supports cube textures. - -
-
D3DPTEXTURECAPS_CUBEMAP_POW2
-
-
-Device requires that cube texture maps have dimensions specified as powers of two. - -
-
D3DPTEXTURECAPS_MIPCUBEMAP
-
-
-Device supports mipmapped cube textures. - -
-
D3DPTEXTURECAPS_MIPMAP
-
-
-Device supports mipmapped textures. - -
-
D3DPTEXTURECAPS_MIPVOLUMEMAP
-
-
-Device supports mipmapped volume textures. - -
-
D3DPTEXTURECAPS_NONPOW2CONDITIONAL
-
-
-D3DPTEXTURECAPS_POW2 is also set, conditionally supports the use of 2D textures with dimensions that are not powers of two. A device that exposes this capability can use such a texture if all of the following requirements are met. - - -
    -
  • The texture addressing mode for the texture stage is set to D3DTADDRESS_CLAMP.
  • -
  • Texture wrapping for the texture stage is disabled (D3DRS_WRAP n set to 0).
  • -
  • Mipmapping is not in use (use magnification filter only).
  • -
  • Texture formats must not be D3DFMT_DXT1 through D3DFMT_DXT5.
  • -
- - -If this flag is not set, and D3DPTEXTURECAPS_POW2 is also not set, then unconditional support is provided for 2D textures with dimensions that are not powers of two. - -A texture that is not a power of two cannot be set at a stage that will be read based on a shader computation (such as the bem - ps and texm3x3 - ps instructions in pixel shaders versions 1_0 to 1_3). For example, these textures can be used to store bumps that will be fed into texture reads, but not the environment maps that are used in texbem - ps, texbeml - ps, and texm3x3spec - ps. This means that a texture with dimensions that are not powers of two cannot be addressed or sampled using texture coordinates computed within the shader. This type of operation is known as a dependent read and cannot be performed on these types of textures. - -
-
D3DPTEXTURECAPS_NOPROJECTEDBUMPENV
-
-
-Device does not support a projected bump-environment loopkup operation in programmable and fixed function shaders. - -
-
D3DPTEXTURECAPS_PERSPECTIVE
-
-
-Perspective correction texturing is supported. - -
-
D3DPTEXTURECAPS_POW2
-
-
-If D3DPTEXTURECAPS_NONPOW2CONDITIONAL is not set, all textures must have widths and heights specified as powers of two. This requirement does not apply to either cube textures or volume textures. - -If D3DPTEXTURECAPS_NONPOW2CONDITIONAL is also set, conditionally supports the use of 2D textures with dimensions that are not powers of two. See D3DPTEXTURECAPS_NONPOW2CONDITIONAL description. - -If this flag is not set, and D3DPTEXTURECAPS_NONPOW2CONDITIONAL is also not set, then unconditional support is provided for 2D textures with dimensions that are not powers of two. - -
-
D3DPTEXTURECAPS_PROJECTED
-
-
-Supports the D3DTTFF_PROJECTED texture transformation flag. When applied, the device divides transformed texture coordinates by the last texture coordinate. If this capability is present, then the projective divide occurs per pixel. If this capability is not present, but the projective divide needs to occur anyway, then it is performed on a per-vertex basis by the Direct3D runtime. - -
-
D3DPTEXTURECAPS_SQUAREONLY
-
-
-All textures must be square. - -
-
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
-
-
-Texture indices are not scaled by the texture size prior to interpolation. - -
-
D3DPTEXTURECAPS_VOLUMEMAP
-
-
-Device supports volume textures. - -
-
D3DPTEXTURECAPS_VOLUMEMAP_POW2
-
-
-Device requires that volume texture maps have dimensions specified as powers of two. - -
-
- - Texture-filtering capabilities for a texture. Per-stage filtering capabilities reflect which filtering modes are supported for texture stages when performing multiple-texture blending. This member can be any combination of the per-stage texture-filtering flags defined in D3DPTFILTERCAPS. - - - Texture-filtering capabilities for a cube texture. Per-stage filtering capabilities reflect which filtering modes are supported for texture stages when performing multiple-texture blending. This member can be any combination of the per-stage texture-filtering flags defined in D3DPTFILTERCAPS. - - - Texture-filtering capabilities for a volume texture. Per-stage filtering capabilities reflect which filtering modes are supported for texture stages when performing multiple-texture blending. This member can be any combination of the per-stage texture-filtering flags defined in D3DPTFILTERCAPS. - - - -Texture-addressing capabilities for texture objects. This member can be one or more of the following flags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DPTADDRESSCAPS_BORDER
-
-
-Device supports setting coordinates outside the range [0.0, 1.0] to the border color, as specified by the D3DSAMP_BORDERCOLOR texture-stage state. - -
-
D3DPTADDRESSCAPS_CLAMP
-
-
-Device can clamp textures to addresses. - -
-
D3DPTADDRESSCAPS_INDEPENDENTUV
-
-
-Device can separate the texture-addressing modes of the u and v coordinates of the texture. This ability corresponds to the D3DSAMP_ADDRESSU and D3DSAMP_ADDRESSV render-state values. - -
-
D3DPTADDRESSCAPS_MIRROR
-
-
-Device can mirror textures to addresses. - -
-
D3DPTADDRESSCAPS_MIRRORONCE
-
-
-Device can take the absolute value of the texture coordinate (thus, mirroring around 0) and then clamp to the maximum value. - -
-
D3DPTADDRESSCAPS_WRAP
-
-
-Device can wrap textures to addresses. - -
-
- - Texture-addressing capabilities for a volume texture. This member can be one or more of the flags defined for the TextureAddressCaps member. - - - -Defines the capabilities for line-drawing primitives. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DLINECAPS_ALPHACMP
-
-
-Supports alpha-test comparisons. - -
-
D3DLINECAPS_ANTIALIAS
-
-
-Antialiased lines are supported. - -
-
D3DLINECAPS_BLEND
-
-
-Supports source-blending. - -
-
D3DLINECAPS_FOG
-
-
-Supports fog. - -
-
D3DLINECAPS_TEXTURE
-
-
-Supports texture-mapping. - -
-
D3DLINECAPS_ZTEST
-
-
-Supports z-buffer comparisons. - -
-
- - Maximum texture width for this device. - - - Maximum texture height for this device. - - - Maximum value for any of the three dimensions (width, height, and depth) of a volume texture. - - - This number represents the maximum range of the integer bits of the post-normalized texture coordinates. A texture coordinate is stored as a 32-bit signed integer using 27 bits to store the integer part and 5 bits for the floating point fraction. The maximum integer index, 2²⁷, is used to determine the maximum texture coordinate, depending on how the hardware does texture-coordinate scaling. - -Some hardware reports the cap D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. For this case, the device defers scaling texture coordinates by the texture size until after interpolation and application of the texture address mode, so the number of times a texture can be wrapped is given by the integer value in MaxTextureRepeat. - -Less desirably, on some hardware D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE is not set and the device scales the texture coordinates by the texture size (using the highest level of detail) prior to interpolation. This limits the number of times a texture can be wrapped to MaxTextureRepeat / texture size. - -For example, assume that MaxTextureRepeat is equal to 32k and the size of the texture is 4k. If the hardware sets D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, then the number of times a texture can be wrapped is equal to MaxTextureRepeat, which is 32k in this example. Otherwise, the number of times a texture can be wrapped is equal to MaxTextureRepeat divided by texture size, which is 32k/4k in this example. - - - Maximum texture aspect ratio supported by the hardware, typically a power of 2. - - - Maximum valid value for the D3DSAMP_MAXANISOTROPY texture-stage state. - - - Maximum W-based depth value that the device supports. - - - Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. - - - Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. - - - Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. - - - Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. - - - Number of pixels to adjust the extents rectangle outward to accommodate antialiasing kernels. - - - Flags specifying supported stencil-buffer operations. Stencil operations are assumed to be valid for all three stencil-buffer operation render states (D3DRS_STENCILFAIL, D3DRS_STENCILPASS, and D3DRS_STENCILZFAIL). - -For more information, see D3DSTENCILCAPS. - - - -Flexible vertex format capabilities. - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DFVFCAPS_DONOTSTRIPELEMENTS
-
-
-It is preferable that vertex elements not be stripped. That is, if the vertex format contains elements that are not used with the current render states, there is no need to regenerate the vertices. If this capability flag is not present, stripping extraneous elements from the vertex format provides better performance. - -
-
D3DFVFCAPS_PSIZE
-
-
-Point size is determined by either the render state or the vertex data. If an FVF is used, point size can come from point size data in the vertex declaration. Otherwise, point size is determined by the render state D3DRS_POINTSIZE. If the application provides point size in both (the render state and the vertex declaration), the vertex data overrides the render-state data. - -
-
D3DFVFCAPS_TEXCOORDCOUNTMASK
-
-
-Masks the low WORD of FVFCaps. These bits, cast to the WORD data type, describe the total number of texture coordinate sets that the device can simultaneously use for multiple texture blending. (You can use up to eight texture coordinate sets for any vertex, but the device can blend using only the specified number of texture coordinate sets.) - -
-
- - -Combination of flags describing the texture operations supported by this device. The following flags are defined. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
D3DTEXOPCAPS_ADD
-
-
-The D3DTOP_ADD texture-blending operation is supported. - -
-
D3DTEXOPCAPS_ADDSIGNED
-
-
-The D3DTOP_ADDSIGNED texture-blending operation is supported. - -
-
D3DTEXOPCAPS_ADDSIGNED2X
-
-
-The D3DTOP_ADDSIGNED2X texture-blending operation is supported. - -
-
D3DTEXOPCAPS_ADDSMOOTH
-
-
-The D3DTOP_ADDSMOOTH texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BLENDCURRENTALPHA
-
-
-The D3DTOP_BLENDCURRENTALPHA texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BLENDDIFFUSEALPHA
-
-
-The D3DTOP_BLENDDIFFUSEALPHA texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BLENDFACTORALPHA
-
-
-The D3DTOP_BLENDFACTORALPHA texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BLENDTEXTUREALPHA
-
-
-The D3DTOP_BLENDTEXTUREALPHA texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BLENDTEXTUREALPHAPM
-
-
-The D3DTOP_BLENDTEXTUREALPHAPM texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BUMPENVMAP
-
-
-The D3DTOP_BUMPENVMAP texture-blending operation is supported. - -
-
D3DTEXOPCAPS_BUMPENVMAPLUMINANCE
-
-
-The D3DTOP_BUMPENVMAPLUMINANCE texture-blending operation is supported. - -
-
D3DTEXOPCAPS_DISABLE
-
-
-The D3DTOP_DISABLE texture-blending operation is supported. - -
-
D3DTEXOPCAPS_DOTPRODUCT3
-
-
-The D3DTOP_DOTPRODUCT3 texture-blending operation is supported. - -
-
D3DTEXOPCAPS_LERP
-
-
-The D3DTOP_LERP texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATE
-
-
-The D3DTOP_MODULATE texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATE2X
-
-
-The D3DTOP_MODULATE2X texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATE4X
-
-
-The D3DTOP_MODULATE4X texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR
-
-
-The D3DTOP_MODULATEALPHA_ADDCOLOR texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA
-
-
-The D3DTOP_MODULATECOLOR_ADDALPHA texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR
-
-
-The D3DTOP_MODULATEINVALPHA_ADDCOLOR texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA
-
-
-The D3DTOP_MODULATEINVCOLOR_ADDALPHA texture-blending operation is supported. - -
-
D3DTEXOPCAPS_MULTIPLYADD
-
-
-The D3DTOP_MULTIPLYADD texture-blending operation is supported. - -
-
D3DTEXOPCAPS_PREMODULATE
-
-
-The D3DTOP_PREMODULATE texture-blending operation is supported. - -
-
D3DTEXOPCAPS_SELECTARG1
-
-
-The D3DTOP_SELECTARG1 texture-blending operation is supported. - -
-
D3DTEXOPCAPS_SELECTARG2
-
-
-The D3DTOP_SELECTARG2 texture-blending operation is supported. - -
-
D3DTEXOPCAPS_SUBTRACT
-
-
-The D3DTOP_SUBTRACT texture-blending operation is supported. - -
-
- - Maximum number of texture-blending stages supported in the fixed function pipeline. This value is the number of blenders available. In the programmable pixel pipeline, this corresponds to the number of unique texture registers used by pixel shader instructions. - - - Maximum number of textures that can be simultaneously bound to the fixed-function pipeline sampler stages. If the same texture is bound to two sampler stages, it counts as two textures. - -This value has no meaning in the programmable pipeline where the number of sampler stages is determined by each pixel shader version. Each pixel shader version also determines the number of texture declaration instructions. See Pixel Shaders. - - - Vertex processing capabilities. For a given physical device, this capability might vary across Direct3D devices depending on the parameters supplied to CreateDevice. See D3DVTXPCAPS. - - - Maximum number of lights that can be active simultaneously. For a given physical device, this capability might vary across Direct3D devices depending on the parameters supplied to CreateDevice. - - - Maximum number of user-defined clipping planes supported. This member can be 0. For a given physical device, this capability may vary across Direct3D devices depending on the parameters supplied to CreateDevice. - - - Maximum number of matrices that this device can apply when performing multimatrix vertex blending. For a given physical device, this capability may vary across Direct3D devices depending on the parameters supplied to CreateDevice. - - - DWORD value that specifies the maximum matrix index that can be indexed into using the per-vertex indices. The number of matrices is MaxVertexBlendMatrixIndex + 1, which is the size of the matrix palette. If normals are present in the vertex data that needs to be blended for lighting, then the number of matrices is half the number specified by this capability flag. If MaxVertexBlendMatrixIndex is set to zero, the driver does not support indexed vertex blending. If this value is not zero then the valid range of indices is zero through MaxVertexBlendMatrixIndex. - -A zero value for MaxVertexBlendMatrixIndex indicates that the driver does not support indexed matrices. - -When software vertex processing is used, 256 matrices could be used for indexed vertex blending, with or without normal blending. - -For a given physical device, this capability may vary across Direct3D devices depending on the parameters supplied to CreateDevice. - - - Maximum size of a point primitive. If set to 1.0f then device does not support point size control. The range is greater than or equal to 1.0f. - - - Maximum number of primitives for each DrawPrimitive call. There are two cases: - - -
    -
  • If MaxPrimitiveCount is not equal to 0xffff, you can draw at most MaxPrimitiveCount primitives with each draw call.
  • -
  • However, if MaxPrimitiveCount equals 0xffff, you can still draw at most MaxPrimitiveCount primitive, but you may also use no more than MaxPrimitiveCount unique vertices (since each primitive can potentially use three different vertices).
  • -
-
- - Maximum size of indices supported for hardware vertex processing. It is possible to create 32-bit index buffers; however, you will not be able to render with the index buffer unless this value is greater than 0x0000FFFF. - - - Maximum number of concurrent data streams for SetStreamSource. The valid range is 1 to 16. Note that if this value is 0, then the driver is not a Direct3D 9 driver. - - - Maximum stride for SetStreamSource. - - - Two numbers that represent the vertex shader main and sub versions. For more information about the instructions supported for each vertex shader version, see Version 1_x, Version 2_0, Version 2_0 Extended, or Version 3_0. - - - The number of vertex shader Vertex Shader Registers that are reserved for constants. - - - Two numbers that represent the pixel shader main and sub versions. For more information about the instructions supported for each pixel shader version, see Version 1_x, Version 2_0, Version 2_0 Extended, or Version 3_0. - - - Maximum value of pixel shader arithmetic component. This value indicates the internal range of values supported for pixel color blending operations. Within the range that they report to, implementations must allow data to pass through pixel processing unmodified (unclamped). Normally, the value of this member is an absolute value. For example, a 1.0 indicates that the range is -1.0 to 1, and an 8.0 indicates that the range is -8.0 to 8.0. The value must be >= 1.0 for any hardware that supports pixel shaders. - - - Device driver capabilities for adaptive tessellation. For more information, see D3DDEVCAPS2 - - - TBD - - - TBD - - - This number indicates which device is the master for this subordinate. This number is taken from the same space as the adapter values. - -For multihead support, one head will be denoted the master head, and all other heads on the same card will be denoted subordinate heads. If more than one multihead adapter is present in a system, the master and its subordinates from one multihead adapter are called a group. - - - This number indicates the order in which heads are referenced by the API. The value for the master adapter is always 0. These values do not correspond to the adapter ordinals. They apply only to heads within a group. - - - Number of adapters in this adapter group (only if master). This will be 1 for conventional adapters. The value will be greater than 1 for the master adapter of a multihead card. The value will be 0 for a subordinate adapter of a multihead card. Each card can have at most one master, but may have many subordinates. - - - A combination of one or more data types contained in a vertex declaration. See D3DDTCAPS. - - - Number of simultaneous render targets. This number must be at least one. - - - Combination of constants that describe the operations supported by StretchRect. The flags that may be set in this field are: - - - - - - - - - - - - - - - - - - - - - - -
ConstantDescription
D3DPTFILTERCAPS_MINFPOINTDevice supports point-sample filtering for minifying rectangles. This filter type is requested by calling StretchRect using D3DTEXF_POINT.
D3DPTFILTERCAPS_MAGFPOINTDevice supports point-sample filtering for magnifying rectangles. This filter type is requested by calling StretchRect using D3DTEXF_POINT.
D3DPTFILTERCAPS_MINFLINEARDevice supports bilinear interpolation filtering for minifying rectangles. This filter type is requested by calling StretchRect using D3DTEXF_LINEAR.
D3DPTFILTERCAPS_MAGFLINEARDevice supports bilinear interpolation filtering for magnifying rectangles. This filter type is requested by calling StretchRect using D3DTEXF_LINEAR.
-  - -For more information, see D3DTEXTUREFILTERTYPE and D3DTEXTUREFILTERTYPE.
-
- - Device supports vertex shader version 2_0 extended capability. See D3DVSHADERCAPS2_0. - - - Device supports pixel shader version 2_0 extended capability. See D3DPSHADERCAPS2_0. - - - Device supports vertex shader texture filter capability. See D3DPTFILTERCAPS. - - - Maximum number of vertex shader instructions that can be run when using flow control. The maximum number of instructions that can be programmed is MaxVertexShader30InstructionSlots. - - - Maximum number of pixel shader instructions that can be run when using flow control. The maximum number of instructions that can be programmed is MaxPixelShader30InstructionSlots. - - - Maximum number of vertex shader instruction slots supported. The maximum value that can be set on this cap is 32768. Devices that support vs_3_0 are required to support at least 512 instruction slots. - - - Maximum number of pixel shader instruction slots supported. The maximum value that can be set on this cap is 32768. Devices that support ps_3_0 are required to support at least 512 instruction slots. - - - - Decompresses one or more shaders from a compressed set. - Microsoft Docs: - A pointer to uncompiled shader data; either ASCII HLSL code or a compiled effect. - Length of uncompiled shader data that pSrcData points to. - The number of shaders to decompress. - The index of the first shader to decompress. - An array of indexes that represent the shaders to decompress. - Flags that indicate how to decompress. Currently, no flags are defined. - The address of a pointer to the ID3DBlob interface that is used to retrieve the decompressed shader data. - A pointer to a variable that receives the total number of shaders that D3DDecompressShaders decompressed. - - - - - Defines a shader macro. - Microsoft Docs: - - - - The macro name. - - - The macro definition. - - - - Values that identify resource types that can be bound to a shader and that are reflected as part of the resource description for the shader. - Microsoft Docs: - - - - The shader resource is a constant buffer. - - - The shader resource is a texture buffer. - - - The shader resource is a texture. - - - The shader resource is a sampler. - - - The shader resource is a read-and-write buffer. - - - The shader resource is a structured buffer. - -For more information about structured buffer, see the Remarks section. - - - The shader resource is a read-and-write structured buffer. - - - The shader resource is a byte-address buffer. - - - The shader resource is a read-and-write byte-address buffer. - - - The shader resource is an append-structured buffer. - - - The shader resource is a consume-structured buffer. - - - The shader resource is a read-and-write structured buffer that uses the built-in counter to append or consume. - - - The shader resource is a constant buffer. - - - The shader resource is a texture buffer. - - - The shader resource is a texture. - - - The shader resource is a sampler. - - - The shader resource is a read-and-write buffer. - - - The shader resource is a structured buffer. - -For more information about structured buffer, see the Remarks section. - - - The shader resource is a read-and-write structured buffer. - - - The shader resource is a byte-address buffer. - - - The shader resource is a read-and-write byte-address buffer. - - - The shader resource is an append-structured buffer. - - - The shader resource is a consume-structured buffer. - - - The shader resource is a read-and-write structured buffer that uses the built-in counter to append or consume. - - - - Values that identify the class of a shader variable. - Microsoft Docs: - - - - The shader variable is a scalar. - - - The shader variable is a vector. - - - The shader variable is a row-major matrix. - - - The shader variable is a column-major matrix. - - - The shader variable is an object. - - - The shader variable is a structure. - - - The shader variable is a class. - - - The shader variable is an interface. - - - The shader variable is a scalar. - - - The shader variable is a vector. - - - The shader variable is a row-major matrix. - - - The shader variable is a column-major matrix. - - - The shader variable is an object. - - - The shader variable is a structure. - - - The shader variable is a class. - - - The shader variable is an interface. - - - This value is not used by a programmer; it exists to force the enumeration to compile to 32 bits. - - - - Disassembles compiled HLSL code. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Length of pSrcData. - - The comment string at the top of the shader that identifies the shader constants and variables. - A pointer to a buffer that receives the ID3DBlob interface that accesses assembly text. - - - - - Values that indicate the minimum desired interpolation precision. - Microsoft Docs: - - - - Default minimum precision, which is 32-bit precision. - - - Minimum precision is min16float, which is 16-bit floating point. - - - Minimum precision is min10float, which is 10-bit floating point. - - - Reserved - - - Minimum precision is min16int, which is 16-bit signed integer. - - - Minimum precision is min16uint, which is 16-bit unsigned integer. - - - Minimum precision is any 16-bit value. - - - Minimum precision is any 10-bit value. - - - - Vertex shader caps. - Microsoft Docs: - - - - Instruction predication is supported if this value is nonzero. See setp_comp - vs. - - - Either 0 or 24, which represents the depth of the dynamic flow control instruction nesting. See D3DVS20CAPS. - - - The number of temporary registers supported. See D3DVS20CAPS. - - - The depth of nesting of the loop - vs/rep - vs and call - vs/callnz bool - vs instructions. See D3DVS20CAPS. - - - - Driver type options. - Microsoft Docs: - - - - The driver type is unknown. - - - A hardware driver, which implements Direct3D features in hardware. This is the primary driver that you should use in your Direct3D applications because it provides the best performance. A hardware driver uses hardware acceleration (on supported hardware) but can also use software for parts of the pipeline that are not supported in hardware. This driver type is often referred to as a hardware abstraction layer or HAL. - - - A reference driver, which is a software implementation that supports every Direct3D feature. A reference driver is designed for accuracy rather than speed and as a result is slow but accurate. The rasterizer portion of the driver does make use of special CPU instructions whenever it can, but it is not intended for retail applications; use it only for feature testing, demonstration of functionality, debugging, or verifying bugs in other drivers. The reference device for this driver is installed by the Windows SDK 8.0 or later and is intended only as a debug aid for development purposes. This driver may be referred to as a REF driver, a reference driver, or a reference rasterizer. - -
Note  When you use the REF driver in Windows Store apps, the REF driver renders correctly but doesn't display any output on the screen. To verify bugs in hardware drivers for Windows Store apps, use D3D_DRIVER_TYPE_WARP for the WARP driver instead.
-
 
-
- - A NULL driver, which is a reference driver without render capability. This driver is commonly used for debugging non-rendering API calls, it is not appropriate for retail applications. This driver is installed by the DirectX SDK. - - - A software driver, which is a driver implemented completely in software. The software implementation is not intended for a high-performance application due to its very slow performance. - - - A WARP driver, which is a high-performance software rasterizer. The rasterizer supports feature levels 9_1 through level 10_1 with a high performance software implementation. For information about limitations creating a WARP device on certain feature levels, see Limitations Creating WARP and Reference Devices. For more information about using a WARP driver, see Windows Advanced Rasterization Platform (WARP) In-Depth Guide. - -
Note  The WARP driver that Windows 8 includes supports feature levels 9_1 through level 11_1.
-
 
-
Note  The WARP driver that Windows 8.1 includes fully supports feature level 11_1, including tiled resources, IDXGIDevice3::Trim, shared BCn surfaces, minblend, and map default.
-
 
-
- - - Writes a memory blob to a file on disk. - Microsoft Docs: - A pointer to a ID3DBlob interface that contains the memory blob to write to the file that the pFileName parameter specifies. - A pointer to a constant null-terminated string that contains the name of the file to which to write. - A Boolean value that specifies whether to overwrite information in the pFileName file. TRUE specifies to overwrite information and FALSE specifies not to overwrite information. - - - - - Specifies interpolation mode, which affects how values are calculated during rasterization. - Microsoft Docs: - - - - The interpolation mode is undefined. - - - Don't interpolate between register values. - - - Interpolate linearly between register values. - - - Interpolate linearly between register values but centroid clamped when multisampling. - - - Interpolate linearly between register values but with no perspective correction. - - - Interpolate linearly between register values but with no perspective correction and centroid clamped when multisampling. - - - Interpolate linearly between register values but sample clamped when multisampling. - - - Interpolate linearly between register values but with no perspective correction and sample clamped when multisampling. - - - - Sets information in a compilation result. - Microsoft Docs: - A pointer to compiled shader data. - The length of the compiled shader data that pSrcData points to. - A D3D_BLOB_PART-typed value that specifies the part to set. Currently, you can update only private data; that is, D3DSetBlobPart currently only supports the D3D_BLOB_PRIVATE_DATA value. - Flags that indicate how to set the blob part. Currently, no flags are defined; therefore, set to zero. - A pointer to data to set in the compilation result. - The length of the data that pPart points to. - A pointer to a buffer that receives the ID3DBlob interface for the new shader in which the new part data is set. - - - - - Retrieves the byte offsets for instructions within a section of shader code. - Microsoft Docs: - A pointer to the compiled shader data. - The size, in bytes, of the block of memory that pSrcData points to. - A combination of the following flags that are combined by using a bitwise OR operation. The resulting value specifies how D3DGetTraceInstructionOffsets retrieves the instruction offsets. - - - - - - - - - - -
FlagDescription
D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE (0x01)Include non-executable code in the retrieved information.
- The index of the instruction in the compiled shader data for which D3DGetTraceInstructionOffsets starts to retrieve the byte offsets. - The number of instructions for which D3DGetTraceInstructionOffsets retrieves the byte offsets. - A pointer to a variable that receives the actual number of offsets. - A pointer to a variable that receives the total number of instructions in the section of shader code. -
-
- - - Values that identify shader-input options. - Microsoft Docs: - - - - Assign a shader input to a register based on the register assignment in the HLSL code (instead of letting the compiler choose the register). - - - Use a comparison sampler, which uses the SampleCmp (DirectX HLSL Texture Object) and SampleCmpLevelZero (DirectX HLSL Texture Object) sampling functions. - - - A 2-bit value for encoding texture components. - - - A 2-bit value for encoding texture components. - - - A 2-bit value for encoding texture components. - - - This value is reserved. - - - Assign a shader input to a register based on the register assignment in the HLSL code (instead of letting the compiler choose the register). - - - Use a comparison sampler, which uses the SampleCmp (DirectX HLSL Texture Object) and SampleCmpLevelZero (DirectX HLSL Texture Object) sampling functions. - - - A 2-bit value for encoding texture components. - - - A 2-bit value for encoding texture components. - - - A 2-bit value for encoding texture components. - - - Forces the enumeration to compile to 32 bits. - This value is not used directly by titles. - - - - Describes the set of features targeted by a Direct3D device. - Microsoft Docs: - - - - Allows Microsoft Compute Driver Model (MCDM) devices to be used, or more feature-rich devices (such as traditional GPUs) that support a superset of the functionality. MCDM is the overall driver model for compute-only; it's a scaled-down peer of the larger scoped Windows Device Driver Model (WDDM). - - - Targets features supported by [feature level](/windows/desktop/direct3d11/overviews-direct3d-11-devices-downlevel-intro) 9.1, including shader model 2. - - - Targets features supported by [feature level](/windows/desktop/direct3d11/overviews-direct3d-11-devices-downlevel-intro) 9.2, including shader model 2. - - - Targets features supported by [feature level](/windows/desktop/direct3d11/overviews-direct3d-11-devices-downlevel-intro) 9.3, including shader model 2.0b. - - - Targets features supported by Direct3D 10.0, including shader model 4. - - - Targets features supported by Direct3D 10.1, including shader model 4. - - - Targets features supported by Direct3D 11.0, including shader model 5. - - - Targets features supported by Direct3D 11.1, including shader model 5 and logical blend operations. This feature level requires a display driver that is at least implemented to WDDM for Windows 8 (WDDM 1.2). - - - Targets features supported by Direct3D 12.0, including shader model 5. - - - Targets features supported by Direct3D 12.1, including shader model 5. - - - - Disassembles compiled HLSL code from a Direct3D10 effect. - Microsoft Docs: - A pointer to source data as compiled HLSL code. - Shader compile options. - A pointer to a buffer that receives the ID3DBlob interface that contains disassembly text. - - - - - Creates a shader module interface from source data for the shader module. - Microsoft Docs: - A pointer to the source data for the shader module. - The size, in bytes, of the block of memory that pSrcData points to. - A pointer to a variable that receives a pointer to the ID3D11Module interface that is used for shader resource re-binding. - - -
\ No newline at end of file diff --git a/src/Vortice.Win32/Generated/Graphics/DirectWrite/Apis.cs b/src/Vortice.Win32/Generated/Graphics/DirectWrite/Apis.cs index bd97894..8deb739 100644 --- a/src/Vortice.Win32/Generated/Graphics/DirectWrite/Apis.cs +++ b/src/Vortice.Win32/Generated/Graphics/DirectWrite/Apis.cs @@ -24,6 +24,5 @@ public static partial class Apis public static readonly HResult DWRITE_E_DOWNLOADFAILED = -2003283953; public static readonly HResult DWRITE_E_TOOMANYDOWNLOADS = -2003283952; - } diff --git a/src/Vortice.Win32/Generated/Graphics/DirectWrite/DirectWrite.xml b/src/Vortice.Win32/Generated/Graphics/DirectWrite/DirectWrite.xml deleted file mode 100644 index 4384cb3..0000000 --- a/src/Vortice.Win32/Generated/Graphics/DirectWrite/DirectWrite.xml +++ /dev/null @@ -1,3307 +0,0 @@ - - - - - Indicates how much any visible DIPs (device independent pixels) overshoot each side of the layout or inline objects. - Microsoft Docs: - - - - The distance from the left-most visible DIP to its left-alignment edge. - - - The distance from the top-most visible DIP to its top alignment edge. - - - The distance from the right-most visible DIP to its right-alignment edge. - - - The distance from the bottom-most visible DIP to its lower-alignment edge. - - - - Identifies a string in a font. - Microsoft Docs: - - - - Unspecified font property identifier. - - - The full name of the font, for example "Arial Bold", from name id 4 in the name table. - - - 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, - for example "Arial", "Arial Narrow", "Arial Black". - - - The postscript name of the font, for example "GillSans-Bold", from name id 6 in the name table. - - - Script/language tag to identify the scripts or languages that the font was primarily designed to support. - - - Script/language tag to identify the scripts or languages that the font declares it is able to support. - - - Semantic tag to describe the font, for example Fancy, Decorative, Handmade, Sans-serif, Swiss, Pixel, Futuristic. - - - Weight of the font represented as a decimal string in the range 1-999. - - - Stretch of the font represented as a decimal string in the range 1-9. - - - Style of the font represented as a decimal string in the range 0-2. - - - Total number of properties. - - - 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. - - - Family name for the weight-width-slope model. - - - Face name of the font, for example Regular or Bold. - - - - Specifies the word wrapping to be used in a particular multiline paragraph. - Microsoft Docs: - - - - Indicates that words are broken across lines to avoid text overflowing the layout box. - - - Indicates that 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. - - -
Note  Windows 8.1 and later only.
-
 
-Words are broken across lines to avoid text overflowing the layout box. - Emergency wrapping occurs if the word is larger than the maximum width.
-
- -
Note  Windows 8.1 and later only.
-
 
-When emergency wrapping, only wrap whole words, never breaking words when the layout width is too small for even a single word.
-
- -
Note  Windows 8.1 and later only.
-
 
-Wrap between any valid character clusters.
-
- - - Defines constants that specify the mechanism by which a font came to be included in a font set. - Microsoft Docs: - - - - Specifies that the font source is unknown, or is not any of the other defined font source types. - - - Specifies that the font source is a font file that's installed for all users on the device. - - - Specifies that the font source is a font file that's installed for the current user. - - - Specifies that the font source is an APPX package, which includes one or more font files. The font source name is the full name of the package. - - - Specifies that the font source is a font provider for downloadable fonts. - - - - Represents the internal structure of a device pixel (that is, the physical arrangement of red, green, and blue color components) that is assumed for purposes of rendering text. - Microsoft Docs: - - - - The red, green, and blue color components of each pixel are assumed to occupy the same point. - - - Each pixel is composed of 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. - - - Each pixel is composed of three vertical stripes, with blue on the left, green in the center, and - red on the right. - - - - Defines constants that specify attributes for a font axis. - Microsoft Docs: - - - - Specifies no attributes. - - - Specifies that this axis is implemented as a variation axis in a variable font, with a continuous range of values, such as a range of weights from 100..900. Otherwise, it is either a static axis that holds a single point, or it has a range but doesn't vary, such as optical size in the Skia Heading font (which covers a range of points but doesn't interpolate any new glyph outlines). - - - Specifies that this axis is recommended to be remain hidden in user interfaces. The font developer may recommend this if an axis is intended to be accessed only programmatically, or is meant for font-internal or font-developer use only. The axis may be exposed in lower-level font inspection utilities, but should not be exposed in common nor even advanced-mode user interfaces in content-authoring apps. - - - - Contains a set of typographic features to be applied during text shaping. - Microsoft Docs: - - - - A pointer to a structure that specifies properties used to identify and execute typographic features in the font. - - - A value that indicates the number of features being applied to a font face. - - - - The type of a font represented by a single font file. Font formats that consist of multiple files, for example Type 1 .PFM and .PFB, have separate enum values for each of the file types. - Microsoft Docs: - - - - Font type is not recognized by the DirectWrite font system. - - - OpenType font with CFF outlines. - - - OpenType font with TrueType outlines. - - - Type 1 PFM font. - - - Type 1 PFB font. - - - Vector .FON font. - - - Bitmap .FON font. - - - OpenType font that contains a TrueType collection. - - - - The DWRITE_PANOSE_XASCENT enumeration contains values that specify the relative size of the lowercase letters. - Microsoft Docs: - - - - Any xascent. - - - No fit for xascent. - - - Very low xascent. - - - Low xascent. - - - Medium xascent. - - - High xascent. - - - Very high xascent. - - - - Specifies the type of DirectWrite factory object. - Microsoft Docs: - - - - Indicates that the DirectWrite factory is a shared factory and that it allows for the reuse of cached font data across multiple in-process components. Such factories also take advantage of cross process font caching components for better performance. - - - Indicates that the DirectWrite factory object is isolated. Objects created from the isolated factory do not interact with internal DirectWrite state from other components. - - - - The DWRITE_PANOSE_DECORATIVE_CLASS enumeration contains values that specify the general look of the character face. - Microsoft Docs: - - - - Any class of decorative typeface. - - - No fit for decorative typeface. - - - Derivative decorative typeface. - - - Nonstandard topology decorative typeface. - - - Nonstandard elements decorative typeface. - - - Nonstandard aspect decorative typeface. - - - Initials decorative typeface. - - - Cartoon decorative typeface. - - - Picture stems decorative typeface. - - - Ornamented decorative typeface. - - - Text and background decorative typeface. - - - Collage decorative typeface. - - - Montage decorative typeface. - - - - The DWRITE_PANOSE_CHARACTER_RANGES enumeration contains values that specify the type of characters available in the font. - Microsoft Docs: - - - - Any range. - - - No fit for range. - - - The range includes extended collection. - - - The range includes literals. - - - The range doesn't include lower case. - - - The range includes small capitals. - - - - The DWRITE_PANOSE_FAMILY enumeration contains values that specify the kind of typeface classification. - Microsoft Docs: - - - - Any typeface classification. - - - No fit typeface classification. - - - Text display typeface classification. - - - Script (or hand written) typeface classification. - - - Decorative typeface classification. - - - Symbol typeface classification. - - - Pictorial (or symbol) typeface classification. - - - - The DWRITE_PANOSE_SYMBOL_ASPECT_RATIO enumeration contains values that specify the aspect ratio of symbolic characters. - Microsoft Docs: - - - - Any aspect ratio of symbolic characters. - - - No fit for aspect ratio of symbolic characters. - - - No width aspect ratio of symbolic characters. - - - Exceptionally wide symbolic characters. - - - Super wide symbolic characters. - - - Very wide symbolic characters. - - - Wide symbolic characters. - - - Normal aspect ratio of symbolic characters. - - - Narrow symbolic characters. - - - Very narrow symbolic characters. - - - - The DWRITE_PANOSE_ARM_STYLE enumeration contains values that specify the style of termination of stems and rounded letterforms for text. - Microsoft Docs: - - - - Any arm style. - - - No fit arm style. - - - The arm style is straight horizontal. - - - The arm style is straight wedge. - - - The arm style is straight vertical. - - - The arm style is straight single serif. - - - The arm style is straight double serif. - - - The arm style is non-straight horizontal. - - - The arm style is non-straight wedge. - - - The arm style is non-straight vertical. - - - The arm style is non-straight single serif. - - - The arm style is non-straight double serif. - - - The arm style is straight horizontal. - - - The arm style is straight vertical. - - - The arm style is non-straight horizontal. - - - The arm style is non-straight wedge. - - - The arm style is non-straight vertical. - - - The arm style is non-straight single serif. - - - The arm style is non-straight double serif. - - - - The DWRITE_PANOSE_TOOL_KIND enumeration contains values that specify the kind of tool that is used to create character forms. - Microsoft Docs: - - - - Any kind of tool. - - - No fit for the kind of tool. - - - Flat NIB tool. - - - Pressure point tool. - - - Engraved tool. - - - Ball tool. - - - Brush tool. - - - Rough tool. - - - Felt-pen-brush-tip tool. - - - Wild-brush tool. - - - - Specifies which formats are supported in the font, either at a font-wide level or per glyph. - Microsoft Docs: - - - - Indicates no data is available for this glyph. - - - The glyph has TrueType outlines. - - - The glyph has CFF outlines. - - - The glyph has multilayered COLR data. - - - The glyph has SVG outlines as standard XML. Fonts may store the content gzip'd rather than plain text, indicated by the first two bytes as gzip header {0x1F 0x8B}. - - - The glyph has PNG image data, with standard PNG IHDR. - - - The glyph has JPEG image data, with standard JIFF SOI header. - - - The glyph has TIFF image data. - - - The glyph has raw 32-bit premultiplied BGRA data. - - - - Defines constants that specify how font families are grouped together. - Microsoft Docs: - - - - Families are grouped by the typographic family name preferred by the font author. The family can contain as many faces as the font author wants. This corresponds to DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME. - - - Families are grouped by the weight-stretch-style family name, where all faces that differ only by those three axes are grouped into the same family, but any other axes go into a distinct family. For example, the Sitka family with six different optical sizes yields six separate families (Sitka Caption, Display, Text, Subheading, Heading, Banner...). This corresponds to DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME. - - - - Indicates the measuring method used for text layout. - Microsoft Docs: - - - - Specifies that text is measured using glyph ideal metrics whose values are independent to the current display resolution. - - - Specifies that text is measured using glyph display-compatible metrics whose values tuned for the current display resolution. - - - Specifies that text is measured using the same glyph display metrics as text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. - - - - Represents the degree to which a font has been stretched compared to a font's normal aspect ratio. - Microsoft Docs: - - - - Predefined font stretch : Not known (0). - - - Predefined font stretch : Ultra-condensed (1). - - - Predefined font stretch : Extra-condensed (2). - - - Predefined font stretch : Condensed (3). - - - Predefined font stretch : Semi-condensed (4). - - - Predefined font stretch : Normal (5). - - - Predefined font stretch : Medium (5). - - - Predefined font stretch : Semi-expanded (6). - - - Predefined font stretch : Expanded (7). - - - Predefined font stretch : Extra-expanded (8). - - - Predefined font stretch : Ultra-expanded (9). - - - - The DWRITE_PANOSE_FINIALS enumeration contains values that specify how character ends and miniscule ascenders are treated. - Microsoft Docs: - - - - Any finials. - - - No fit for finials. - - - No loops. - - - No closed loops. - - - No open loops. - - - Sharp with no loops. - - - Sharp with closed loops. - - - Sharp with open loops. - - - Tapered with no loops. - - - Tapered with closed loops. - - - Tapered with open loops. - - - Round with no loops. - - - Round with closed loops. - - - Round with open loops. - - - - The DWRITE_PANOSE_LINING enumeration contains values that specify the handling of the outline for the decorative typeface. - Microsoft Docs: - - - - Any lining. - - - No fit for lining. - - - No lining. - - - The lining is inline. - - - The lining is outline. - - - The lining is engraved. - - - The lining is shadowed. - - - The lining is relief. - - - The lining is backdrop. - - - - The DWRITE_PANOSE_WEIGHT enumeration contains values that specify the weight of characters. - Microsoft Docs: - - - - Any weight. - - - No fit weight. - - - Very light weight. - - - Light weight. - - - Thin weight. - - - Book weight. - - - Medium weight. - - - Demi weight. - - - Bold weight. - - - Heavy weight. - - - Black weight. - - - Extra black weight. - - - Extra black weight. - - - - The DWRITE_PANOSE_SCRIPT_TOPOLOGY enumeration contains values that specify the topology of letterforms. - Microsoft Docs: - - - - Any script topology. - - - No fit for script topology. - - - Script topology is roman disconnected. - - - Script topology is roman trailing. - - - Script topology is roman connected. - - - Script topology is cursive disconnected. - - - Script topology is cursive trailing. - - - Script topology is cursive connected. - - - Script topology is black-letter disconnected. - - - Script topology is black-letter trailing. - - - Script topology is black-letter connected. - - - - The DWRITE_PANOSE_ASPECT_RATIO enumeration contains values that specify info about the ratio between width and height of the character face. - Microsoft Docs: - - - - Any aspect ratio. - - - No fit for aspect ratio. - - - Very condensed aspect ratio. - - - Condensed aspect ratio. - - - Normal aspect ratio. - - - Expanded aspect ratio. - - - Very expanded aspect ratio. - - - - The DWRITE_CARET_METRICS structure specifies the metrics for caret placement in a font. - Microsoft Docs: - - - - Vertical rise of the caret in font design units. Rise / Run yields the caret angle. Rise = 1 for perfectly upright fonts (non-italic). - - - Horizontal run of the caret in font design units. Rise / Run yields the caret angle. Run = 0 for perfectly upright fonts (non-italic). - - - Horizontal offset of the caret, in font design units, along the baseline for good appearance. Offset = 0 for perfectly upright fonts (non-italic). - - - - Specifies the alignment of paragraph text along the reading direction axis, relative to the leading and trailing edge of the layout box. - Microsoft Docs: - - - - The leading edge of the paragraph text is aligned to the leading edge of the layout box. - - - The trailing edge of the paragraph text is aligned to the trailing edge of the layout box. - - - The center of the paragraph text is aligned to the center of the layout box. - - - Align text to the leading side, and also justify text to fill the lines. - - - - The DWRITE_PANOSE_XHEIGHT enumeration contains values that specify info about the relative size of lowercase letters and the treatment of diacritic marks (xheight). - Microsoft Docs: - - - - Any xheight. - - - No fit xheight. - - - Constant small xheight. - - - Constant standard xheight. - - - Constant large xheight. - - - Ducking small xheight. - - - Ducking standard xheight. - - - Ducking large xheight. - - - Constant standard xheight. - - - Ducking standard xheight. - - - - Contains information regarding the size and placement of strikethroughs. - Microsoft Docs: - - - - A value that indicates the width of the strikethrough, measured parallel to the baseline. - - - A value that indicates the thickness of the strikethrough, measured perpendicular to the baseline. - - - A value that indicates the offset of the strikethrough from the baseline. - A positive offset represents a position below the baseline and - a negative offset is above. Typically, the offset will be negative. - - - Reading direction of the text associated with the strikethrough. - This value is used to interpret whether the width value runs horizontally - or vertically. - - - 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. - - - An array of characters containing the locale of the text that is the strikethrough is being drawn over. - - - The measuring mode can be useful to the renderer to determine how underlines are rendered, such as rounding the thickness to a whole pixel in GDI-compatible modes. - - - - Contains the metrics associated with text after layout. - Microsoft Docs: - - - - A value that indicates the left-most point of formatted text relative to the layout box, - while excluding any glyph overhang. - - - A value that indicates the top-most point of formatted text relative to the layout box, while excluding any glyph overhang. - - - A value that indicates the width of the formatted text, while ignoring trailing whitespace - at the end of each line. - - - The width of the formatted text, taking into account the - trailing whitespace at the end of each line. - - - The height of the formatted text. The height of an empty string - is set to the same value as that of the default font. - - - The initial width given to the layout. It can be either larger or smaller than the - text content width, depending on whether the text - was wrapped. - - - Initial height given to the layout. Depending on the length of the text, it may be larger or smaller than the text content height. - - - 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. - - - Total number of lines. - - - - Represents the density of a typeface, in terms of the lightness or heaviness of the strokes. - Microsoft Docs: - - - - Predefined font weight : Thin (100). - - - Predefined font weight : Extra-light (200). - - - Predefined font weight : Ultra-light (200). - - - Predefined font weight : Light (300). - - - Predefined font weight : Semi-Light (350). - - - Predefined font weight : Normal (400). - - - Predefined font weight : Regular (400). - - - Predefined font weight : Medium (500). - - - Predefined font weight : Demi-bold (600). - - - Predefined font weight : Semi-bold (600). - - - Predefined font weight : Bold (700). - - - Predefined font weight : Extra-bold (800). - - - Predefined font weight : Ultra-bold (800). - - - Predefined font weight : Black (900). - - - Predefined font weight : Heavy (900). - - - Predefined font weight : Extra-black (950). - - - Predefined font weight : Ultra-black (950). - - - - The DWRITE_SCRIPT_PROPERTIES structure specifies script properties for caret navigation and justification. - Microsoft Docs: - - - - 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.
-
 
-
- - The standardized numeric code, ranging 0-999. - - - 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  Combining marks and variation selectors can produce clusters that are longer than these look-aheads, so this estimate is considered typical language use. Diacritics must be tested explicitly separately.
-
 
-
- - Appropriate character to elongate the given script for justification. For example: - -
    -
  • Arabic - U+0640 Tatweel
  • -
  • Ogham - U+1680 Ogham Space Mark
  • -
-
- - 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. - - - The language uses dividers between words, such as spaces between Latin or the Ethiopic wordspace. Examples include Latin, Greek, Devanagari, and Ethiopic. Chinese, Korean, and Thai are excluded. - - - The characters are discrete units from each other. This includes both block scripts and clustered scripts. Examples include Latin, Greek, Cyrillic, Hebrew, Chinese, and Thai. - - - The language is a block script, expanding between characters. Examples include Chinese, Japanese, Korean, and Bopomofo. - - - The language is justified within glyph clusters, not just between glyph clusters, such as the character sequence of Thai Lu and Sara Am (U+E026, U+E033), which form a single cluster but still expand between them. Examples include Thai, Lao, and Khmer. - - - The script's clusters are connected to each other (such as the baseline-linked Devanagari), and no separation is added between characters. - -
Note  Cursively linked scripts like Arabic are also connected (but not all connected scripts are cursive).
-
 
-Examples include Devanagari, Arabic, Syriac, Bengala, Gurmukhi, and Ogham. Latin, Chinese, and Thaana are excluded.
-
- - The script is naturally cursive (Arabic and Syriac), meaning it uses other justification methods like kashida extension rather than inter-character spacing. - -
Note   Although other scripts like Latin and Japanese might actually support handwritten cursive forms, they are not considered cursive scripts.
-
 
-Examples include Arabic, Syriac, and Mongolian. Thaana, Devanagari, Latin, and Chinese are excluded.
-
- - Reserved - - - - Contains information about the width, thickness, offset, run height, reading direction, and flow direction of an underline. - Microsoft Docs: - - - - A value that indicates the width of the underline, measured parallel to the baseline. - - - A value that indicates the thickness of the underline, measured perpendicular to the baseline. - - - A value that indicates the offset of the underline from the baseline. A positive offset represents a position below the baseline (away from the text) and a negative offset is above (toward the text). - - - A value that indicates the height of the tallest run where the underline is applied. - - - A value that indicates the reading direction of the text associated with the underline. This value is used to interpret whether the width value runs horizontally or vertically. - - - A value that indicates the 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. - - - An array of characters which contains the locale of the text that the underline is being drawn under. For example, in vertical text, the underline belongs on the left for Chinese but on the right for Japanese. - - - The measuring mode can be useful to the renderer to determine how underlines are rendered, such as rounding the thickness to a whole pixel in GDI-compatible modes. - - - - The optical margin alignment mode. - Microsoft Docs: - - - - Align to the default origin and side-bearings of the glyph. - - - Align to the ink of the glyphs, such that the black box abuts the margins. - - - - The DWRITE_VERTICAL_GLYPH_ORIENTATION enumeration contains values that specify the desired kind of glyph orientation for the text. - Microsoft Docs: - - - - The default 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. - - - Stacked glyph orientation. 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. - - - - Describes the region obtained by a hit test. - Microsoft Docs: - - - - The first text position within the hit region. - - - The number of text positions within the hit region. - - - The x-coordinate of the upper-left corner of the hit region. - - - The y-coordinate of the upper-left corner of the hit region. - - - The width of the hit region. - - - The height of the hit region. - - - The BIDI level of the text positions within the hit region. - - - true if the hit region contains text; otherwise, false. - - - true if the text range is trimmed; otherwise, false. - - - - The optional adjustment to a glyph's position. - Microsoft Docs: - - - - The 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. - - - The offset in the ascent direction, that is, the direction ascenders point. A positive ascender offset moves the glyph up (in pre-transform coordinates). A negative ascender offset moves the glyph down. - - - - The DWRITE_PANOSE_ASPECT enumeration contains values that specify the ratio between the width and height of the character face. - Microsoft Docs: - - - - Any aspect. - - - No fit for aspect. - - - Super condensed aspect. - - - Very condensed aspect. - - - Condensed aspect. - - - Normal aspect. - - - Extended aspect. - - - Very extended aspect. - - - Super extended aspect. - - - Monospace aspect. - - - - Shaping output properties for an output glyph. - Microsoft Docs: - - - - Indicates that the glyph is shaped alone. - - - Reserved for future use. - - - - The DWRITE_TEXT_ANTIALIAS_MODE enumeration contains values that specify the type of antialiasing to use for text when the rendering mode calls for antialiasing. - Microsoft Docs: - - - - 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 for rendering text onto a transparent intermediate bitmap. - - - 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  Grayscale rendering with IDWriteBitmapRenderTarget1 uses premultiplied alpha.
-
 
-
- - - The DWRITE_PANOSE_SPACING enumeration contains values that specify character spacing (monospace versus proportional). - Microsoft Docs: - - - - Any spacing. - - - No fit for spacing. - - - Spacing is proportional. - - - Spacing is monospace. - - - - The informational string enumeration which identifies a string embedded in a font file. - Microsoft Docs: - - - - Indicates the string containing the unspecified name ID. - - - Indicates the string containing the copyright notice provided by the font. - - - Indicates the string containing a version number. - - - Indicates the string containing the trademark information provided by the font. - - - Indicates the string containing the name of the font manufacturer. - - - Indicates the string containing the name of the font designer. - - - Indicates the string containing the URL of the font designer (with protocol, e.g., http://, ftp://). - - - Indicates the string containing the description of the font. This may also contain revision information, usage recommendations, history, features, and so on. - - - Indicates the string containing the URL of the 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. - - - Indicates the string containing the description of how the font may be legally used, or different example scenarios for licensed use. - - - Indicates the string containing the URL where additional licensing information can be found. - - - Indicates the string containing the GDI-compatible family name. Since 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"). - - - Indicates the string containing a GDI-compatible subfamily name. - - - Contains sample text for display in font lists. This can be the font name or any other text that the designer thinks is the best - -example to display the font in. - - - The full name of the font, like Arial Bold, from name id 4 in the name table - - - The postscript name of the font, like GillSans-Bold, from name id 6 in the name table. - - - The postscript CID findfont name, from name id 20 in the name table - - - Indicates the string containing the 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. - - - Indicates the string containing the subfamily name preferred by the designer. This name is typically only present if it differs from the GDI-compatible subfamily name. - - - - Creates an OpenType tag for a font axis. - Microsoft Docs: - The first character in the tag. - The second character in the tag. - The third character in the tag. - The fourth character in the tag. - - - - - The DWRITE_JUSTIFICATION_OPPORTUNITY structure specifies justification info per glyph. - Microsoft Docs: - - - - Minimum amount of expansion to apply to the side of the glyph. This might vary from zero to infinity, typically being zero except for kashida. - - - Maximum amount of expansion to apply to the side of the glyph. This might vary from zero 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. - - - Maximum amount of compression to apply to the side of the glyph. This might vary from zero up to the glyph cluster size. - - - Priority of this expansion point. Larger priorities are applied later, while priority zero does nothing. - - - Priority of this compression point. Larger priorities are applied later, while priority zero does nothing. - - - Allow this expansion point to use up any remaining slack space even after all expansion priorities have been used up. - - - Allow this compression point to use up any remaining space even after all compression priorities have been used up. - - - Apply expansion and compression to the leading edge of the glyph. This bit is FALSE (0) 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. - - - Apply expansion and compression to the trailing edge of the glyph. This bit is FALSE (0) 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. - - - Reserved - - - - Line breakpoint characteristics of a character. - Microsoft Docs: - - - - Indicates a breaking condition before the character. - - - Indicates a breaking condition after the character. - - - Indicates that the character is some form of whitespace, which may be meaningful for justification. - - - Indicates that the character is a soft hyphen, often used to indicate hyphenation points inside words. - - - Reserved for future use. - - - - Specifies the alignment of paragraph text along the flow direction axis, relative to the top and bottom of the flow's layout box. - Microsoft Docs: - - - - The top of the text flow is aligned to the top edge of the layout box. - - - The bottom of the text flow is aligned to the bottom edge of the layout box. - - - The center of the flow is aligned to the center of the layout box. - - - - The DWRITE_PANOSE_FILL enumeration contains values that specify the type of fill and line treatment. - Microsoft Docs: - - - - Any fill. - - - No fit for fill. - - - The fill is the standard solid fill. - - - No fill. - - - The fill is patterned fill. - - - The fill is complex fill. - - - The fill is shaped fill. - - - The fill is drawn distressed. - - - - Creates an OpenType tag as a 32-bit 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. - Microsoft Docs: - The first character in the tag. - The second character in the tag. - The third character in the tag. - The fourth character in the tag. - - - - - The DWRITE_PANOSE union describes typeface classification values that you use with IDWriteFont1::GetPanose to select and match the font. - Microsoft Docs: - - - - A 10-byte array of typeface classification values. - - - A DWRITE_PANOSE_FAMILY-typed value that specifies the typeface classification values to get. - - - The text structure. - - - A DWRITE_PANOSE_SERIF_STYLE-typed value that specifies the serif style of text. - - - A DWRITE_PANOSE_WEIGHT-typed value that specifies the weight of the text. - - - A DWRITE_PANOSE_PROPORTION-typed value that specifies the proportion for the text. - - - A DWRITE_PANOSE_CONTRAST-typed value that specifies the contrast for the text. - - - A DWRITE_PANOSE_STROKE_VARIATION-typed value that specifies the stroke variation for the text. - - - A DWRITE_PANOSE_ARM_STYLE-typed value that specifies the arm style of text. - - - A DWRITE_PANOSE_LETTERFORM-typed value that specifies the letter form for the text. - - - A DWRITE_PANOSE_MIDLINE-typed value that specifies the midline for the text. - - - A DWRITE_PANOSE_XHEIGHT-typed value that specifies the relative size of lowercase text. - - - The script structure. - - - A DWRITE_PANOSE_TOOL_KIND-typed value that specifies the kind of tool for the script. - - - A DWRITE_PANOSE_SPACING-typed value that specifies the spacing of the script. - - - A DWRITE_PANOSE_ASPECT_RATIO-typed value that specifies the aspect ratio of the script. - - - A DWRITE_PANOSE_SCRIPT_TOPOLOGY-typed value that specifies the script topology. - - - A DWRITE_PANOSE_SCRIPT_FORM-typed value that specifies the script form. - - - A DWRITE_PANOSE_FINIALS-typed value that specifies the script finials. - - - A DWRITE_PANOSE_XASCENT-typed value that specifies the relative size of lowercase letters. - - - The decorative structure. - - - A DWRITE_PANOSE_DECORATIVE_CLASS-typed value that specifies the class of the decorative typeface. - - - A DWRITE_PANOSE_ASPECT-typed value that specifies the aspect of the decorative typeface. - - - The serif variant of the decorative typeface. - - - A DWRITE_PANOSE_FILL-typed value that specifies the fill of the decorative typeface. - - - A DWRITE_PANOSE_LINING-typed value that specifies the lining of the decorative typeface. - - - A DWRITE_PANOSE_DECORATIVE_TOPOLOGY-typed value that specifies the decorative topology. - - - A DWRITE_PANOSE_CHARACTER_RANGES-typed value that specifies the character range of the decorative typeface. - - - The symbol structure. - - - A DWRITE_PANOSE_SYMBOL_KIND-typed value that specifies the kind of symbol set. - - - A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio and contrast of the symbol typeface. - - - A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 94 of the symbol typeface. - - - A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 119 of the symbol typeface. - - - A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 157 of the symbol typeface. - - - A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 163 of the symbol typeface. - - - A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 211 of the symbol typeface. - - - - The DWRITE_GLYPH_ORIENTATION_ANGLE enumeration contains values that specify how the glyph is oriented to the x-axis. - Microsoft Docs: - - - - Glyph orientation is upright. - - - Glyph orientation is rotated 90 degrees clockwise. - - - Glyph orientation is upside-down. - - - Glyph orientation is rotated 270 degrees clockwise. - - - - Contains the information needed by renderers to draw glyph runs. - Microsoft Docs: - - - - The physical font face object to draw with. - - - The logical size of the font in DIPs (equals 1/96 inch), not points. - - - The number of glyphs in the glyph run. - - - A pointer to an array of indices to render for the glyph run. - - - A pointer to an array containing glyph advance widths for the glyph run. - - - A pointer to an array containing glyph offsets for the glyph run. - - - 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. - - - 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. - - - - Contains properties describing the geometric measurement of an application-defined inline object. - Microsoft Docs: - - - - The width of the inline object. - - - The height of the inline object. - - - The distance from the top of the object to the point where it is lined up with the adjacent text. - If the baseline is at the bottom, then baseline simply equals height. - - - A Boolean flag that indicates whether the object is to be placed upright or alongside the text baseline for vertical text. - - - - Indicates the file format of a complete font face. - Microsoft Docs: - - - - OpenType font face with CFF outlines. - - - OpenType font face with TrueType outlines. - - - A Type 1 font face. - - - A vector .FON format font face. - - - A bitmap .FON format font face. - - - Font face type is not recognized by the DirectWrite font system. - - - 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. - - - OpenType font face that is a part of a TrueType collection. - - - - The DWRITE_PANOSE_PROPORTION enumeration contains values that specify the proportion of the glyph shape by considering additional detail to standard characters. - Microsoft Docs: - - - - Any proportion for the text. - - - No fit proportion for the text. - - - Old style proportion for the text. - - - Modern proportion for the text. - - - Extra width proportion for the text. - - - Expanded proportion for the text. - - - Condensed proportion for the text. - - - Very expanded proportion for the text. - - - Very condensed proportion for the text. - - - Monospaced proportion for the text. - - - - Represents a range of bytes in a font file. - Microsoft Docs: - - - - Starting offset of the fragment from the beginning of the file. - - - Size of the file fragment, in bytes. - - - - The method used for line spacing in a text layout. - Microsoft Docs: - - - - Line spacing depends solely on the content, adjusting to accommodate the size of fonts and inline objects. - - - Lines are explicitly set to uniform spacing, regardless of the size of fonts and inline objects. This can be useful to avoid the uneven appearance that can occur from font fallback. - - - Line spacing and baseline distances are proportional to the computed values based on the content, the size of the fonts and inline objects. - - -
Note  This value is only available on Windows 10 or later and it can be used with IDWriteTextLayout3::SetLineSpacing, - but can not be used with IDWriteTextFormat::SetLineSpacing.
-
 
-
- - - Specifies the location of a resource. - Microsoft Docs: - - - - The resource is remote, and information about it is unknown, including the file size and date. If you attempt to create a font or file stream, the creation will fail until locality becomes at least partial. - - - The resource is partially local, which means you can query the size and date of the file stream. With this type, you also might be able to create a font face and retrieve the particular glyphs for metrics and drawing, but not all the glyphs will be present. - - - The resource is completely local, and all font functions can be called without concern of missing data or errors related to network connectivity. - - - - Indicates the condition at the edges of inline object or text used to determine line-breaking behavior. - Microsoft Docs: - - - - Indicates whether a break is allowed by determining the condition of the neighboring text span or inline object. - - - Indicates that a line break is allowed, unless overruled by the condition of the - neighboring text span or inline object, either prohibited by a - "may not break" condition or forced by a "must break" condition. - - - Indicates that there should be no line break, unless overruled by a "must break" condition from - the neighboring text span or inline object. - - - Indicates that the line break must happen, regardless of the condition of the adjacent - text span or inline object. - - - - The DWRITE_PANOSE_SCRIPT_FORM enumeration contains values that specify the general look of the character face, with consideration of its slope and tails. - Microsoft Docs: - - - - Any script form. - - - No fit for script form. - - - Script form is upright with no wrapping. - - - Script form is upright with some wrapping. - - - Script form is upright with more wrapping. - - - Script form is upright with extreme wrapping. - - - Script form is oblique with no wrapping. - - - Script form is oblique with some wrapping. - - - Script form is oblique with more wrapping. - - - Script form is oblique with extreme wrapping. - - - Script form is exaggerated with no wrapping. - - - Script form is exaggerated with some wrapping. - - - Script form is exaggerated with more wrapping. - - - Script form is exaggerated with extreme wrapping. - - - - Contains the metrics associated with text after layout. - Microsoft Docs: - - - - The height of the formatted text taking into account the trailing whitespace at the end of each line. This is - pertinent for vertical text. - - - - Contains the information needed by renderers to draw glyph runs with glyph color information. - Microsoft Docs: - - - - Glyph run to draw for this layer. - - - Pointer to the glyph run description for this layer. This may be NULL. For example, when the original glyph run is split into multiple layers, one layer might have a description and the others have none. - - - X coordinate of the baseline origin for the layer. - - - Y coordinate of the baseline origin for the layer. - - - Color value of the run; if all members are zero, the run should be drawn using the current brush. - - - Zero-based index into the font’s color palette; if this is 0xFFFF, the run should be drawn using the current brush. - - - - Represents a method of rendering glyphs. - Microsoft Docs: - - - - Specifies that the rendering mode is determined automatically, based on the font and size. - - - Specifies that no anti-aliasing is performed. Each pixel is either set to the foreground color of the text or retains the color of the background. - - - 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. - - - 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. - - - 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. - - - 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. - - - Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes. - - - - Specifies a range of text positions where format is applied in the text represented by an IDWriteTextLayout object. - Microsoft Docs: - - - - The start position of the text range. - - - The number positions in the text range. - - - - Specifies properties used to identify and execute typographic features in the current font face. - Microsoft Docs: - - - - The feature OpenType name identifier. - - - The execution parameter of the feature. - - - - Specifies algorithmic style simulations to be applied to the font face. Bold and oblique simulations can be combined via bitwise OR operation. - Microsoft Docs: - - - - Indicates that no simulations are applied to the font face. - - - Indicates that algorithmic emboldening is applied to the font face. DWRITE_FONT_SIMULATIONS_BOLD increases weight by applying a widening algorithm to the glyph outline. This may be used to simulate a bold weight where no designed bold weight is available. - - - Indicates that algorithmic italicization is applied to the font face. DWRITE_FONT_SIMULATIONS_OBLIQUE applies obliquing (shear) to the glyph outline. This may be used to simulate an oblique/italic style where no designed oblique/italic style is available. - - - - The DWRITE_PANOSE_DECORATIVE_TOPOLOGY enumeration contains values that specify the overall shape characteristics of the font. - Microsoft Docs: - - - - Any decorative topology. - - - No fit for decorative topology. - - - Standard decorative topology. - - - Square decorative topology. - - - Multiple segment decorative topology. - - - Art deco decorative topology. - - - Uneven weighting decorative topology. - - - Diverse arms decorative topology. - - - Diverse forms decorative topology. - - - Lombardic forms decorative topology. - - - Upper case in lower case decorative topology. - - - The decorative topology is implied. - - - Horseshoe E and A decorative topology. - - - Cursive decorative topology. - - - Blackletter decorative topology. - - - Swash variance decorative topology. - - - - Specifies how glyphs are rendered. - Microsoft Docs: - - - - Specifies that the rendering mode is determined automatically, based on the font and size. - - - Specifies that no anti-aliasing is performed. Each pixel is either set to the foreground color of the text or retains the color of the background. - - - 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. - - - 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. - - - 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. - - - 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. - - - Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes. - - - Similar to natural symmetric mode except that when possible, text should be rasterized in a downsampled form. - - - - Represents a color glyph run. The IDWriteFactory4::TranslateColorGlyphRun method returns an ordered collection of color glyph runs of varying types depending on what the font supports. - Microsoft Docs: - - - - Type of glyph image format for this color run. Exactly one type will be set since TranslateColorGlyphRun has already broken down the run into separate parts. - - - Measuring mode to use for this glyph run. - - - - Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics. - Microsoft Docs: - - - - The usage of the font line gap depends on the method used for text layout. - - - The font line gap is excluded from line spacing. - - - The font line gap is included in line spacing. - - - - Represents the minimum and maximum range of the possible values for a font axis. - Microsoft Docs: - - - - The four-character identifier of the font axis (for example, weight, width, slant, italic, and so on). - - - The minimum value supported by this axis. - - - The maximum value supported by this axis. - - - - Stores the association of text and its writing system script, as well as some display attributes. - Microsoft Docs: - - - - The zero-based index representation of writing system script. - - - A value that indicates additional shaping requirement of text. - - - - Contains information about a formatted line of text. - Microsoft Docs: - - - - 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. - - - 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. - - - - The DWRITE_PANOSE_SERIF_STYLE enumeration contains values that specify the appearance of the serif text. - Microsoft Docs: - - - - Any appearance of the serif text. - - - No fit appearance of the serif text. - - - Cove appearance of the serif text. - - - Obtuse cove appearance of the serif text. - - - Square cove appearance of the serif text. - - - Obtuse square cove appearance of the serif text. - - - Square appearance of the serif text. - - - Thin appearance of the serif text. - - - Oval appearance of the serif text. - - - Exaggerated appearance of the serif text. - - - Triangle appearance of the serif text. - - - Normal sans appearance of the serif text. - - - Obtuse sans appearance of the serif text. - - - Perpendicular sans appearance of the serif text. - - - Flared appearance of the serif text. - - - Rounded appearance of the serif text. - - - Script appearance of the serif text. - - - Perpendicular sans appearance of the serif text. - - - Oval appearance of the serif text. - - - - The DWRITE_MATRIX structure specifies the graphics transform to be applied to rendered glyphs. - Microsoft Docs: - - - - A value indicating the horizontal scaling / cosine of rotation. - - - A value indicating the vertical shear / sine of rotation. - - - A value indicating the horizontal shear / negative sine of rotation. - - - A value indicating the vertical scaling / cosine of rotation. - - - A value indicating the horizontal shift (always orthogonal regardless of rotation). - - - A value indicating the vertical shift (always orthogonal regardless of rotation.) - - - - Specifies how to apply number substitution on digits and related punctuation. - Microsoft Docs: - - - - Specifies that the substitution method should be determined based on the LOCALE_IDIGITSUBSTITUTION value of the specified text culture. - - - If the culture is Arabic or Persian, specifies that the number shapes depend on the context. Either traditional or nominal number shapes are used, depending on the nearest preceding strong character or (if there is none) the reading direction of the paragraph. - - - Specifies that code points 0x30-0x39 are always rendered as nominal numeral shapes (ones of the European number), that is, no substitution is performed. - - - Specifies that numbers are rendered using the national number shapes as specified by the LOCALE_SNATIVEDIGITS value of the specified text culture. - - - Specifies that numbers are rendered using the traditional shapes for the specified culture. For most cultures, this is the same as NativeNational. However, NativeNational results in Latin numbers for some Arabic cultures, whereasDWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL results in arabic numbers for all Arabic cultures. - - - - Sets the vertical spacing between lines of text. - Microsoft Docs: - - - - Method used to determine line spacing. - - - Spacing between lines. The interpretation of this parameter depends upon the line spacing method, as follows: - -
    -
  • 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.
  • -
-
- - 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.
  • -
-
- - 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. - - - Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics. - - - - Indicates the direction of how lines of text are placed relative to one another. - Microsoft Docs: - - - - Specifies that text lines are placed from top to bottom. - - - Specifies that text lines are placed from bottom to top. - - - Specifies that text lines are placed from left to right. - - - Specifies that text lines are placed from right to left. - - - - Data for a single glyph from GetGlyphImageData. - Microsoft Docs: - - - - Pointer to the glyph data. - - - Size of glyph data in bytes. - - - Unique identifier for the glyph data. Clients may use this to cache a parsed/decompressed version and tell whether a repeated call to the same font returns the same data. - - - Pixels per em of the returned data. For non-scalable raster data (PNG/TIFF/JPG), this can be larger or smaller than requested from GetGlyphImageData when there isn't an exact match. - For scaling intermediate sizes, use: desired pixels per em * font em size / actual pixels per em. - - - Size of image when the format is pixel data. - - - Left origin along the horizontal Roman baseline. - - - Right origin along the horizontal Roman baseline. - - - Top origin along the vertical central baseline. - - - Bottom origin along vertical central baseline. - - - - Specifies whether to enable grid-fitting of glyph outlines (also known as hinting). - Microsoft Docs: - - - - Choose grid fitting based on the font's table information. - - - Always disable grid fitting, using the ideal glyph outlines. - - - Enable grid fitting, adjusting glyph outlines for device pixel display. - - - - Specifies the trimming option for text overflowing the layout box. - Microsoft Docs: - - - - A value that specifies the text granularity used to trim text overflowing the layout box. - - - A character code used as the delimiter that signals the beginning of the portion of text to be preserved. - Text starting from the Nth occurence of the delimiter (where N equals delimiterCount) counting backwards from the end of the text block will be preserved. - For example, given the text is a path like c:\A\B\C\D\file.txt and delimiter equal to '\' and delimiterCount equal to 1, the file.txt portion of the text would be preserved. - Specifying a delimiterCount of 2 would preserve D\file.txt. - - - The delimiter count, counting from the end of the text, to preserve text from. - - - - Specifies the container format of a font resource. A container format is distinct from a font file format (DWRITE_FONT_FILE_TYPE) because the container describes the container in which the underlying font file is packaged. - Microsoft Docs: - - - - - Identifies a type of alpha texture. - Microsoft Docs: - - - - Specifies an alpha texture for aliased text rendering (that is, each pixel is either fully opaque or fully transparent), with one byte per pixel. - - - 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. - - - - The DWRITE_BASELINE enumeration contains values that specify the baseline for text alignment. - Microsoft Docs: - - - - The Roman baseline for horizontal; the Central baseline for vertical. - - - The baseline that is used by alphabetic scripts such as Latin, Greek, and Cyrillic. - - - Central baseline, which is generally used for vertical text. - - - Mathematical baseline, which math characters are centered on. - - - Hanging baseline, which is used in scripts like Devanagari. - - - Ideographic bottom baseline for CJK, left in vertical. - - - Ideographic top baseline for CJK, right in vertical. - - - The bottom-most extent in horizontal, left-most in vertical. - - - The top-most extent in horizontal, right-most in vertical. - - - - The DWRITE_PANOSE_MIDLINE enumeration contains values that specify info about the placement of midline across uppercase characters and the treatment of diagonal stem apexes. - Microsoft Docs: - - - - Any midline. - - - No fit midline. - - - Standard trimmed midline. - - - Standard pointed midline. - - - Standard serifed midline. - - - High trimmed midline. - - - High pointed midline. - - - High serifed midline. - - - Constant trimmed midline. - - - Constant pointed midline. - - - Constant serifed midline. - - - Low trimmed midline. - - - Low pointed midline. - - - Low serifed midline. - - - - Contains information about a glyph cluster. - Microsoft Docs: - - - - The total advance width of all glyphs in the cluster. - - - The number of text positions in the cluster. - - - Indicates whether a line can be broken right after the cluster. - - - Indicates whether the cluster corresponds to a whitespace character. - - - Indicates whether the cluster corresponds to a newline character. - - - Indicates whether the cluster corresponds to a soft hyphen character. - - - Indicates whether the cluster is read from right to left. - - - Reserved for future use. - - - - The DWRITE_UNICODE_RANGE structure specifies the range of Unicode code points. - Microsoft Docs: - - - - The first code point in the Unicode range. - - - The last code point in the Unicode range. - - - - The DWRITE_PANOSE_SYMBOL_KIND enumeration contains values that specify the kind of symbol set. - Microsoft Docs: - - - - Any kind of symbol set. - - - No fit for the kind of symbol set. - - - The kind of symbol set is montages. - - - The kind of symbol set is pictures. - - - The kind of symbol set is shapes. - - - The kind of symbol set is scientific symbols. - - - The kind of symbol set is music symbols. - - - The kind of symbol set is expert symbols. - - - The kind of symbol set is patterns. - - - The kind of symbol set is boarders. - - - The kind of symbol set is icons. - - - The kind of symbol set is logos. - - - The kind of symbol set is industry specific. - - - - Specifies the metrics of an individual glyph. - Microsoft Docs: - - - - 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'). - - - Specifies the X offset from the origin of the current glyph to the origin of the next glyph when writing horizontally. - - - 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. - - - 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. - - - 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. - - - Specifies the vertical distance from the bottom edge of the black box to the advance height. This is positive when the bottom edge of the black box is within the layout box, or negative when the bottom edge of black box overhangs the layout box. - - - 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 (that is, yMax) of the glyph's bounding box. - - - - Specifies the direction in which reading progresses. - Microsoft Docs: - - - - Indicates that reading progresses from left to right. - - - Indicates that reading progresses from right to left. - - -
Note  Windows 8.1 and later only.
-
 
-Indicates that reading progresses from top to bottom.
-
- -
Note  Windows 8.1 and later only.
-
 
- Indicates that reading progresses from bottom to top.
-
- - - The DWRITE_OUTLINE_THRESHOLD enumeration contains values that specify the policy used by the IDWriteFontFace1::GetRecommendedRenderingMode method to determine whether to render glyphs in outline mode. - Microsoft Docs: - - - - Graphics system renders anti-aliased outlines. - - - Graphics system renders aliased outlines. - - - - The DWRITE_PANOSE_CONTRAST enumeration contains values that specify the ratio between thickest and thinnest point of the stroke for a letter such as uppercase 'O'. - Microsoft Docs: - - - - Any contrast. - - - No fit contrast. - - - No contrast. - - - Very low contrast. - - - Low contrast. - - - Medium low contrast. - - - Medium contrast. - - - Medium high contrast. - - - High contrast. - - - Very high contrast. - - - Horizontal low contrast. - - - Horizontal medium contrast. - - - Horizontal high contrast. - - - Broken contrast. - - - - Represents a value for a font axis. Used when querying and creating font instances. - Microsoft Docs: - - - - The four-character identifier of the font axis (for example, weight, width, slant, italic, and so on). - - - A value for the axis specified in axisTag. The meaning and range of the value depends on the semantics of the particular axis. Certain well-known axes have standard ranges and defaults. Here are some examples. - -- Weight (1..1000, default == 400) -- Width (>0, default == 100) -- Slant (-90..90, default == -20) -- Italic (0 or 1) - - - - The DWRITE_PANOSE_LETTERFORM enumeration contains values that specify the roundness of letterform for text. - Microsoft Docs: - - - - Any letterform. - - - No fit letterform. - - - Normal contact letterform. - - - Normal weighted letterform. - - - Normal boxed letterform. - - - Normal flattened letterform. - - - Normal rounded letterform. - - - Normal off-center letterform. - - - Normal square letterform. - - - Oblique contact letterform. - - - Oblique weighted letterform. - - - Oblique boxed letterform. - - - Oblique flattened letterform. - - - Oblique rounded letterform. - - - Oblique off-center letterform. - - - Oblique square letterform. - - - - Font property used for filtering font sets and building a font set with explicit properties. - Microsoft Docs: - - - - Specifies the requested font property, such as DWRITE_FONT_PROPERTY_ID_FAMILY_NAME. - - - Specifies the value, such as "Segoe UI". - - - Specifies the locale to use, such as "en-US". Simply leave this empty when used - with the font set filtering functions, as they will find a match regardless of - language. For passing to AddFontFaceReference, the localeName specifies the language - of the property value. - - - - Indicates additional shaping requirements for text. - Microsoft Docs: - - - - Indicates that there is no additional shaping requirements for text. Text is shaped with the writing system default behavior. - - - Indicates that text should leave no visible control or format control characters. - - - - The DWRITE_PANOSE_STROKE_VARIATION enumeration contains values that specify the relationship between thin and thick stems of text characters. - Microsoft Docs: - - - - Any stroke variation for text characters. - - - No fit stroke variation for text characters. - - - No stroke variation for text characters. - - - The stroke variation for text characters is gradual diagonal. - - - The stroke variation for text characters is gradual transitional. - - - The stroke variation for text characters is gradual vertical. - - - The stroke variation for text characters is gradual horizontal. - - - The stroke variation for text characters is rapid vertical. - - - The stroke variation for text characters is rapid horizontal. - - - The stroke variation for text characters is instant vertical. - - - The stroke variation for text characters is instant horizontal. - - - - Defines constants that specify certain axes that can be applied automatically in layout during font selection. - Microsoft Docs: - - - - Specifies that no axes are automatically applied. - - - Specifies that—when no value is specified via DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE—an appropriate optical value should be automatically chosen based on the font size (via IDWriteTextLayout::SetFontSize). You can still apply the 'opsz' value over text ranges via IDWriteTextFormat3::SetFontAxisValues, which take priority. - - - - Contains shaping output properties for an output glyph. - Microsoft Docs: - - - - Indicates that the glyph has justification applied. - - - Indicates that the glyph is the start of a cluster. - - - Indicates that the glyph is a diacritic mark. - - - Indicates that the glyph is a word boundary with no visible space. - - - Reserved for future use. - - - - Defines constants that specify a four-character identifier for a font axis. - Microsoft Docs: - - - - Specifies the weight axis, using the identifier 'w','g','h','t'. - - - Specifies the width axis, using the identifier 'w','d','t','h'. - - - Specifies the slant axis, using the identifier 's','l','n','t'. - - - Specifies the optical size axis, using the identifier 'o','p','s','z'. - - - Specifies the italic axis, using the identifier 'i','t','a','l'. - - - - Represents the style of a font face as normal, italic, or oblique. - Microsoft Docs: - - - - Font style : Normal. - - - Font style : Oblique. - - - Font style : Italic. - - - - Contains additional properties related to those in DWRITE_GLYPH_RUN. - Microsoft Docs: - - - - An array of characters containing the locale name associated with this run. - - - An array of characters containing the text associated with the glyphs. - - - The number of characters in UTF16 code-units. Note that this may be different than the number of glyphs. - - - An array of indices to the glyph indices array, of the first glyphs of all the glyph clusters of the glyphs to render. - - - Corresponding text position in the string this glyph run came from. This is relative to the beginning of the string represented by the IDWriteTextLayout object. - - - - A value that indicates the typographic feature of text supplied by the font. - Microsoft Docs: - - - - Replaces figures separated by a slash with an alternative form. - -Equivalent OpenType tag: 'afrc' - - - Turns capital characters into petite capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in petite-cap form to avoid disrupting the flow of text. See the pcap feature description for notes on the relationship of caps, smallcaps and petite caps. - -Equivalent OpenType tag: 'c2pc' - - - Turns capital characters into small capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in small-cap form to avoid disrupting the flow of text. - -Equivalent OpenType tag: 'c2sc' - - - In specified situations, replaces default glyphs with alternate forms which provide better joining behavior. Used in script typefaces which are designed to have some or all of their glyphs join. - -Equivalent OpenType tag: 'calt' - - - Shifts various punctuation marks up to a position that works better with all-capital sequences or sets of lining figures; also changes oldstyle figures to lining figures. By default, glyphs in a text face are designed to work with lowercase characters. Some characters should be shifted vertically to fit the higher visual center of all-capital or lining text. Also, lining figures are the same height (or close to it) as capitals, and fit much better with all-capital text. - -Equivalent OpenType tag: 'case' - - - To minimize the number of glyph alternates, it is sometimes desired to decompose a character into two glyphs. Additionally, it may be preferable to compose two characters into a single glyph for better glyph processing. This feature permits such composition/decomposition. The feature should be processed as the first feature processed, and should be processed only when it is called. - -Equivalent OpenType tag: 'ccmp' - - - Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. Unlike other ligature features, clig specifies the context in which the ligature is recommended. This capability is important in some script designs and for swash ligatures. - -Equivalent OpenType tag: 'clig' - - - Globally adjusts inter-glyph spacing for all-capital text. Most typefaces contain capitals and lowercase characters, and the capitals are positioned to work with the lowercase. When capitals are used for words, they need more space between them for legibility and esthetics. This feature would not apply to monospaced designs. Of course the user may want to override this behavior in order to do more pronounced letterspacing for esthetic reasons. - - - -Equivalent OpenType tag: 'cpsp' - - - Replaces default character glyphs with corresponding swash glyphs in a specified context. Note that there may be more than one swash alternate for a given character. - - - -Equivalent OpenType tag: 'cswh' - - - In cursive scripts like Arabic, this feature cursively positions adjacent glyphs. - -Equivalent OpenType tag: 'curs' - - - The default. - - - Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures which may be used for special effect, at the user's preference. - -Equivalent OpenType tag: 'dlig' - - - Replaces standard forms in Japanese fonts with corresponding forms preferred by typographers. For example, a user would invoke this feature to replace kanji character U+5516 with U+555E. - - -Equivalent OpenType tag: 'expt' - - - Replaces figures separated by a slash with 'common' (diagonal) fractions. - -Equivalent OpenType tag: 'frac' - - - Replaces glyphs set on other widths with glyphs set on full (usually em) widths. In a CJKV font, this may include "lower ASCII" Latin characters and various symbols. In a European font, this feature replaces proportionally-spaced glyphs with monospaced glyphs, which are generally set on widths of 0.6 em. For example, a user may invoke this feature in a Japanese font to get full monospaced Latin glyphs instead of the corresponding proportionally-spaced versions. - -Equivalent OpenType tag: 'fwid' - - - Produces the half forms of consonants in Indic scripts. For example, in Hindi (Devanagari script), the conjunct KKa, obtained by doubling the Ka, is denoted with a half form of Ka followed by the full form. - -Equivalent OpenType tag: 'half' - - - Produces the halant forms of consonants in Indic scripts. For example, in Sanskrit (Devanagari script), syllable final consonants are frequently required in their halant form. - -Equivalent OpenType tag: 'haln' - - - Respaces glyphs designed to be set on full-em widths, fitting them onto half-em widths. This differs from hwid in that it does not substitute new glyphs. - -Equivalent OpenType tag: 'halt' - - - Replaces the default (current) forms with the historical alternates. While some ligatures are also used for historical effect, this feature deals only with single characters. Some fonts include the historical forms as alternates, so they can be used for a 'period' effect. - -Equivalent OpenType tag: 'hist' - - - Replaces standard kana with forms that have been specially designed for only horizontal writing. This is a typographic optimization for improved fit and more even color. - -Equivalent OpenType tag: 'hkna' - - - Replaces the default (current) forms with the historical alternates. Some ligatures were in common use in the past, but appear anachronistic today. Some fonts include the historical forms as alternates, so they can be used for a 'period' effect. - -Equivalent OpenType tag: 'hlig' - - - Replaces glyphs on proportional widths, or fixed widths other than half an em, with glyphs on half-em (en) widths. Many CJKV fonts have glyphs which are set on multiple widths; this feature selects the half-em version. There are various contexts in which this is the preferred behavior, including compatibility with older desktop documents. - -Equivalent OpenType tag: 'hwid' - - - Used to access the JIS X 0212-1990 glyphs for the cases when the JIS X 0213:2004 form is encoded. The JIS X 0212-1990 (aka, "Hojo Kanji") and JIS X 0213:2004 character sets overlap significantly. In some cases their prototypical glyphs differ. When building fonts that support both JIS X 0212-1990 and JIS X 0213:2004 (such as those supporting the Adobe-Japan 1-6 character collection), it is recommended that JIS X 0213:2004 forms be the preferred encoded form. - -Equivalent OpenType tag: 'hojo' - - - The National Language Council (NLC) of Japan has defined new glyph shapes for a number of JIS characters, which were incorporated into JIS X 0213:2004 as new prototypical forms. The 'jp04' feature is A subset of the 'nlck' feature, and is used to access these prototypical glyphs in a manner that maintains the integrity of JIS X 0213:2004. - -Equivalent OpenType tag: 'jp04' - - - Replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS C 6226-1978 (JIS78) specification. - -Equivalent OpenType tag: 'jp78' - - - Replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS X 0208-1983 (JIS83) specification. - -Equivalent OpenType tag: 'jp83' - - - Replaces Japanese glyphs from the JIS78 or JIS83 specifications with the corresponding forms from the JIS X 0208-1990 (JIS90) specification. - -Equivalent OpenType tag: 'jp90' - - - Adjusts amount of space between glyphs, generally to provide optically consistent spacing between glyphs. Although a well-designed typeface has consistent inter-glyph spacing overall, some glyph combinations require adjustment for improved legibility. Besides standard adjustment in the horizontal direction, this feature can supply size-dependent kerning data via device tables, "cross-stream" kerning in the Y text direction, and adjustment of glyph placement independent of the advance adjustment. Note that this feature may apply to runs of more than two glyphs, and would not be used in monospaced fonts. Also note that this feature does not apply to text set vertically. - -Equivalent OpenType tag: 'kern' - - - Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers the ligatures which the designer/manufacturer judges should be used in normal conditions. - -Equivalent OpenType tag: 'liga' - - - Changes selected figures from oldstyle to the default lining form. For example, a user may invoke this feature in order to get lining figures, which fit better with all-capital text. This feature overrides results of the Oldstyle Figures feature (onum). - -Equivalent OpenType tag: 'lnum' - - - Enables localized forms of glyphs to be substituted for default forms. Many scripts used to write multiple languages over wide geographical areas have developed localized variant forms of specific letters, which are used by individual literary communities. For example, a number of letters in the Bulgarian and Serbian alphabets have forms distinct from their Russian counterparts and from each other. In some cases the localized form differs only subtly from the script 'norm', in others the forms are radically distinct. - -Equivalent OpenType tag: 'locl' - - - Positions mark glyphs with respect to base glyphs. For example, in Arabic script positioning the Hamza above the Yeh. - -Equivalent OpenType tag: 'mark' - - - Replaces standard typographic forms of Greek glyphs with corresponding forms commonly used in mathematical notation (which are a subset of the Greek alphabet). - -Equivalent OpenType tag: 'mgrk' - - - Positions marks with respect to other marks. Required in various non-Latin scripts like Arabic. For example, in Arabic, the ligaturised mark Ha with Hamza above it can also be obtained by positioning these marks relative to one another. - -Equivalent OpenType tag: 'mkmk' - - - Replaces default glyphs with various notational forms (such as glyphs placed in open or solid circles, squares, parentheses, diamonds or rounded boxes). In some cases an annotation form may already be present, but the user may want a different one. - -Equivalent OpenType tag: 'nalt' - - - Used to access glyphs made from glyph shapes defined by the National Language Council (NLC) of Japan for a number of JIS characters in 2000. - -Equivalent OpenType tag: 'nlck' - - - Changes selected figures from the default lining style to oldstyle form. For example, a user may invoke this feature to get oldstyle figures, which fit better into the flow of normal upper- and lowercase text. This feature overrides results of the Lining Figures feature (lnum). - -Equivalent OpenType tag: 'onum' - - - Replaces default alphabetic glyphs with the corresponding ordinal forms for use after figures. One exception to the follows-a-figure rule is the numero character (U+2116), which is actually a ligature substitution, but is best accessed through this feature. - -Equivalent OpenType tag: 'ordn' - - - Respaces glyphs designed to be set on full-em widths, fitting them onto individual (more or less proportional) horizontal widths. This differs from pwid in that it does not substitute new glyphs (GPOS, not GSUB feature). The user may prefer the monospaced form, or may simply want to ensure that the glyph is well-fit and not rotated in vertical setting (Latin forms designed for proportional spacing would be rotated). - -Equivalent OpenType tag: 'palt' - - - Turns lowercase characters into petite capitals. Forms related to petite capitals, such as specially designed figures, may be included. Some fonts contain an additional size of capital letters, shorter than the regular smallcaps and it is referred to as petite caps. Such forms are most likely to be found in designs with a small lowercase x-height, where they better harmonise with lowercase text than the taller smallcaps (for examples of petite caps, see the Emigre type families Mrs Eaves and Filosofia). - -Equivalent OpenType tag: 'pcap' - - - Replaces figure glyphs set on uniform (tabular) widths with corresponding glyphs set on glyph-specific (proportional) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs. - -Equivalent OpenType tag: 'pnum' - - - Replaces glyphs set on uniform widths (typically full or half-em) with proportionally spaced glyphs. The proportional variants are often used for the Latin characters in CJKV fonts, but may also be used for Kana in Japanese fonts. - -Equivalent OpenType tag: 'pwid' - - - Replaces glyphs on other widths with glyphs set on widths of one quarter of an em (half an en). The characters involved are normally figures and some forms of punctuation. - -Equivalent OpenType tag: 'qwid' - - - Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures, which the script determines as required to be used in normal conditions. This feature is important for some scripts to ensure correct glyph formation. - -Equivalent OpenType tag: 'rlig' - - - Identifies glyphs in the font which have been designed for "ruby", from the old typesetting term for four-point-sized type. Japanese typesetting often uses smaller kana glyphs, generally in superscripted form, to clarify the meaning of kanji which may be unfamiliar to the reader. - -Equivalent OpenType tag: 'ruby' - - - Replaces the default forms with the stylistic alternates. Many fonts contain alternate glyph designs for a purely esthetic effect; these don't always fit into a clear category like swash or historical. As in the case of swash glyphs, there may be more than one alternate form. - -Equivalent OpenType tag: 'salt' - - - Replaces lining or oldstyle figures with inferior figures (smaller glyphs which sit lower than the standard baseline, primarily for chemical or mathematical notation). May also replace lowercase characters with alphabetic inferiors. - -Equivalent OpenType tag: 'sinf' - - - Turns lowercase characters into small capitals. This corresponds to the common SC font layout. It is generally used for display lines set in Large & small caps, such as titles. Forms related to small capitals, such as oldstyle figures, may be included. - -Equivalent OpenType tag: 'smcp' - - - Replaces 'traditional' Chinese or Japanese forms with the corresponding 'simplified' forms. - -Equivalent OpenType tag: 'smpl' - - - In addition to, or instead of, stylistic alternatives of individual glyphs (see 'salt' feature), some fonts may contain sets of stylistic variant glyphs corresponding to portions of the character set, such as multiple variants for lowercase letters in a Latin font. Glyphs in stylistic sets may be designed to harmonise visually, interract in particular ways, or otherwise work together. Examples of fonts including stylistic sets are Zapfino Linotype and Adobe's Poetica. Individual features numbered sequentially with the tag name convention 'ss01' 'ss02' 'ss03' . 'ss20' provide a mechanism for glyphs in these sets to be associated via GSUB lookup indexes to default forms and to each other, and for users to select from available stylistic sets - -Equivalent OpenType tag: 'ss01' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss02' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss03' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss04' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss05' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss06' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss07' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss08' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss09' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss10' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss11' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss12' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss13' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss14' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss15' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss16' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss17' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss18' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss19' - - - See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1. - -Equivalent OpenType tag: 'ss20' - - - May replace a default glyph with a subscript glyph, or it may combine a glyph substitution with positioning adjustments for proper placement. - -Equivalent OpenType tag: 'subs' - - - Replaces lining or oldstyle figures with superior figures (primarily for footnote indication), and replaces lowercase letters with superior letters (primarily for abbreviated French titles). - -Equivalent OpenType tag: 'sups' - - - Replaces default character glyphs with corresponding swash glyphs. Note that there may be more than one swash alternate for a given character. - -Equivalent OpenType tag: 'swsh' - - - Replaces the default glyphs with corresponding forms designed specifically for titling. These may be all-capital and/or larger on the body, and adjusted for viewing at larger sizes. - -Equivalent OpenType tag: 'titl' - - - Replaces 'simplified' Japanese kanji forms with the corresponding 'traditional' forms. This is equivalent to the Traditional Forms feature, but explicitly limited to the traditional forms considered proper for use in personal names (as many as 205 glyphs in some fonts). - -Equivalent OpenType tag: 'tnam' - - - Replaces figure glyphs set on proportional widths with corresponding glyphs set on uniform (tabular) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs. - -Equivalent OpenType tag: 'tnum' - - - Replaces 'simplified' Chinese hanzi or Japanese kanji forms with the corresponding 'traditional' forms. - -Equivalent OpenType tag: 'trad' - - - Replaces glyphs on other widths with glyphs set on widths of one third of an em. The characters involved are normally figures and some forms of punctuation. - -Equivalent OpenType tag: 'twid' - - - Maps upper- and lowercase letters to a mixed set of lowercase and small capital forms, resulting in a single case alphabet (for an example of unicase, see the Emigre type family Filosofia). The letters substituted may vary from font to font, as appropriate to the design. If aligning to the x-height, smallcap glyphs may be substituted, or specially designed unicase forms might be used. Substitutions might also include specially designed figures. - - -Equivalent OpenType tag: 'unic' - - - Indicates that the font is displayed vertically. - - - Replaces normal figures with figures adjusted for vertical display. - - - Allows the user to change from the default 0 to a slashed form. Some fonts contain both a default form of zero, and an alternative form which uses a diagonal slash through the counter. Especially in condensed designs, it can be difficult to distinguish between 0 and O (zero and capital O) in any situation where capitals and lining figures may be arbitrarily mixed. - -Equivalent OpenType tag: 'zero' - - - - Specifies the text granularity used to trim text overflowing the layout box. - Microsoft Docs: - - - - No trimming occurs. Text flows beyond the layout width. - - - Trimming occurs at a character cluster boundary. - - - Trimming occurs at a word boundary. - - - - Contains information about a formatted line of text. - Microsoft Docs: - - - - The number of text positions in the text line. - This includes any trailing whitespace and newline characters. - - - The number of whitespace positions at the end of the text line. - Newline sequences are considered whitespace. - - - The number of characters in the newline sequence at the end of the text line. - If the count is zero, then the text line was either wrapped or it is the end of the text. - - - The height of the text line. - - - The distance from the top of the text line to its baseline. - - - The line is trimmed. - - - - The DWRITE_FONT_METRICS structure specifies the metrics that are applicable to all glyphs within the font face. - Microsoft Docs: - - - - 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 identation value. - - - The ascent value of the font face in font design units. Ascent is the distance from the top of font character alignment box to the English baseline. - - - The descent value of the font face in font design units. Descent is the distance from the bottom of font character alignment box to the English baseline. - - - The 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 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. - - - The cap height value of the font face in font design units. Cap height is the distance from the 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. - - - The x-height value of the font face in font design units. x-height is the distance from the English baseline to the top of lowercase letter "x", or a similar lowercase character. - - - 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. - - - The suggested underline thickness value of the font face in font design units. - - - 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. - - - The suggested strikethrough thickness value of the font face in font design units. - - - - The DWRITE_FONT_METRICS1 structure specifies the metrics that are applicable to all glyphs within the font face. - Microsoft Docs: - - - - Left edge of accumulated bounding blackbox of all glyphs in the font. - - - Top edge of accumulated bounding blackbox of all glyphs in the font. - - - Right edge of accumulated bounding blackbox of all glyphs in the font. - - - Bottom edge of accumulated bounding blackbox of all glyphs in the font. - - - Horizontal position of the subscript relative to the baseline origin. This is typically negative (to the left) in italic and oblique fonts, and zero in regular fonts. - - - Vertical position of the subscript relative to the baseline. This is typically negative. - - - Horizontal size of the subscript em box in design units, used to scale the simulated subscript relative to the full em box size. This is 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 uses its own policy. - - - Vertical size of the subscript em box in design units, used to scale the simulated subscript relative to the full em box size. This is 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 uses its own policy. - - - Horizontal position of the superscript relative to the baseline origin. This is typically positive (to the right) in italic and oblique fonts, and zero in regular fonts. - - - Vertical position of the superscript relative to the baseline. This is typically positive. - - - Horizontal size of the superscript em box in design units, used to scale the simulated superscript relative to the full em box size. This is 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. - - - Vertical size of the superscript em box in design units, used to scale the simulated superscript relative to the full em box size. This is 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. - - - A Boolean value that indicates that the ascent, descent, and lineGap are based on newer 'typographic' values in the font, rather than legacy values. - -
\ No newline at end of file diff --git a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_decorative_e__Struct.cs b/src/Vortice.Win32/Generated/Graphics/DirectWrite/_decorative_e__Struct.cs deleted file mode 100644 index 8d18f3d..0000000 --- a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_decorative_e__Struct.cs +++ /dev/null @@ -1,43 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ - -namespace Win32.Graphics.DirectWrite; - -public partial struct _decorative_e__Struct -{ - /// - public byte familyKind; - - /// - public byte decorativeClass; - - /// - public byte weight; - - /// - public byte aspect; - - /// - public byte contrast; - - /// - public byte serifVariant; - - /// - public byte fill; - - /// - public byte lining; - - /// - public byte decorativeTopology; - - /// - public byte characterRange; -} diff --git a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_script_e__Struct.cs b/src/Vortice.Win32/Generated/Graphics/DirectWrite/_script_e__Struct.cs deleted file mode 100644 index e0a2216..0000000 --- a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_script_e__Struct.cs +++ /dev/null @@ -1,43 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ - -namespace Win32.Graphics.DirectWrite; - -public partial struct _script_e__Struct -{ - /// - public byte familyKind; - - /// - public byte toolKind; - - /// - public byte weight; - - /// - public byte spacing; - - /// - public byte aspectRatio; - - /// - public byte contrast; - - /// - public byte scriptTopology; - - /// - public byte scriptForm; - - /// - public byte finials; - - /// - public byte xAscent; -} diff --git a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_symbol_e__Struct.cs b/src/Vortice.Win32/Generated/Graphics/DirectWrite/_symbol_e__Struct.cs deleted file mode 100644 index 9a5fe18..0000000 --- a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_symbol_e__Struct.cs +++ /dev/null @@ -1,43 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ - -namespace Win32.Graphics.DirectWrite; - -public partial struct _symbol_e__Struct -{ - /// - public byte familyKind; - - /// - public byte symbolKind; - - /// - public byte weight; - - /// - public byte spacing; - - /// - public byte aspectRatioAndContrast; - - /// - public byte aspectRatio94; - - /// - public byte aspectRatio119; - - /// - public byte aspectRatio157; - - /// - public byte aspectRatio163; - - /// - public byte aspectRatio211; -} diff --git a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_text_e__Struct.cs b/src/Vortice.Win32/Generated/Graphics/DirectWrite/_text_e__Struct.cs deleted file mode 100644 index 4f2609e..0000000 --- a/src/Vortice.Win32/Generated/Graphics/DirectWrite/_text_e__Struct.cs +++ /dev/null @@ -1,43 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ - -namespace Win32.Graphics.DirectWrite; - -public partial struct _text_e__Struct -{ - /// - public byte familyKind; - - /// - public byte serifStyle; - - /// - public byte weight; - - /// - public byte proportion; - - /// - public byte contrast; - - /// - public byte strokeVariation; - - /// - public byte armStyle; - - /// - public byte letterform; - - /// - public byte midline; - - /// - public byte xHeight; -} diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/AlphaMode.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/AlphaMode.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/AlphaMode.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/AlphaMode.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Apis.cs new file mode 100644 index 0000000..3f254f0 --- /dev/null +++ b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Apis.cs @@ -0,0 +1,18 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace Win32.Graphics.Dxgi.Common; + +public static partial class Apis +{ + public const uint DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN = 4294967295; + + public const uint DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN = 4294967294; +} + diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/ColorSpaceType.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ColorSpaceType.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/ColorSpaceType.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ColorSpaceType.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/CpuAccess.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/CpuAccess.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/CpuAccess.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/CpuAccess.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/Format.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Format.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/Format.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Format.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/GammaControl.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/GammaControl.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/GammaControl.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/GammaControl.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/GammaControlCapabilities.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/GammaControlCapabilities.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/GammaControlCapabilities.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/GammaControlCapabilities.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/JpegAcHuffmanTable.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/JpegAcHuffmanTable.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/JpegAcHuffmanTable.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/JpegAcHuffmanTable.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/JpegDCHuffmanTable.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/JpegDCHuffmanTable.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/JpegDCHuffmanTable.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/JpegDCHuffmanTable.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/JpegQuantizationTable.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/JpegQuantizationTable.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/JpegQuantizationTable.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/JpegQuantizationTable.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/ModeDescription.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeDescription.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/ModeDescription.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeDescription.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/ModeRotation.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeRotation.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/ModeRotation.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeRotation.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/ModeScaling.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeScaling.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/ModeScaling.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeScaling.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/ModeScanlineOrder.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeScanlineOrder.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/ModeScanlineOrder.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/ModeScanlineOrder.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/Rational.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Rational.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/Rational.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Rational.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/Rgb.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Rgb.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/Rgb.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/Rgb.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/SampleDescription.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common/SampleDescription.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Dxgi/SampleDescription.cs rename to src/Vortice.Win32/Generated/Graphics/Dxgi.Common/SampleDescription.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi/Apis.cs index aadaaf9..ec83297 100644 --- a/src/Vortice.Win32/Generated/Graphics/Dxgi/Apis.cs +++ b/src/Vortice.Win32/Generated/Graphics/Dxgi/Apis.cs @@ -184,6 +184,5 @@ public static partial class Apis public static readonly HResult DXGI_ERROR_CACHE_HASH_COLLISION = -2005270475; public static readonly HResult DXGI_ERROR_ALREADY_EXISTS = -2005270474; - } diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi/DXGI.xml b/src/Vortice.Win32/Generated/Graphics/Dxgi/DXGI.xml deleted file mode 100644 index dcd8f73..0000000 --- a/src/Vortice.Win32/Generated/Graphics/Dxgi/DXGI.xml +++ /dev/null @@ -1,4764 +0,0 @@ - - - - - Identifies resize behavior when the back-buffer size does not match the size of the target output. - Microsoft Docs: - - - - Directs DXGI to make the back-buffer contents scale to fit the presentation target size. This is the implicit behavior of DXGI when you call the IDXGIFactory::CreateSwapChain method. - - - Directs DXGI to make the back-buffer contents appear without any scaling when the presentation target size is not equal to the back-buffer size. The top edges of the back buffer and presentation target are aligned together. If the WS_EX_LAYOUTRTL style is associated with the HWND handle to the target output window, the right edges of the back buffer and presentation target are aligned together; otherwise, the left edges are aligned together. All target area outside the back buffer is filled with window background color. - -This value specifies that all target areas outside the back buffer of a swap chain are filled with the background color that you specify in a call to IDXGISwapChain1::SetBackgroundColor. - - - Directs DXGI to make the back-buffer contents scale to fit the presentation target size, while preserving the aspect ratio of the back-buffer. If the scaled back-buffer does not fill the presentation area, it will be centered with black borders. - -This constant is supported on Windows Phone 8 and Windows 10. - -Note that with legacy Win32 window swapchains, this works the same as DXGI_SCALING_STRETCH. - - - - Represents a 3x2 matrix. Used with GetMatrixTransform and SetMatrixTransform to indicate the scaling and translation transform for SwapChainPanel swap chains. - Microsoft Docs: - - - - The value in the first row and first column of the matrix. - - - The value in the first row and second column of the matrix. - - - The value in the second row and first column of the matrix. - - - The value in the second row and second column of the matrix. - - - The value in the third row and first column of the matrix. - - - The value in the third row and second column of the matrix. - - - - Identifies the adapter on which a shared resource object was created. - Microsoft Docs: - A handle to a shared resource object. The IDXGIResource1::CreateSharedHandle method returns this handle. - A pointer to a variable that receives a locally unique identifier (LUID) value that identifies the adapter. LUID is defined in Dxgi.h. An LUID is a 64-bit value that is guaranteed to be unique only on the operating system on which it was generated. The uniqueness of an LUID is guaranteed only until the operating system is restarted. - - - - - An IDXGIResource interface allows resource sharing and identifies the memory that a resource resides in. - Microsoft Docs: - - - - - Indicates options for presenting frames to the swap chain. - Microsoft Docs: - - - - Specifies that the presentation mode is a composition surface, meaning that the conversion from YUV to RGB is happening once per output refresh (for example, 60 Hz). - When this value is returned, the media app should discontinue use of the decode swap chain and perform YUV to RGB conversion itself, reducing the frequency of YUV to RGB conversion to once per video frame. - - - Specifies that the presentation mode is an overlay surface, meaning that the YUV to RGB conversion is happening efficiently in hardware (once per video frame). - When this value is returned, the media app can continue to use the decode swap chain. - See IDXGIDecodeSwapChain. - - - No presentation is specified. - - - An issue occurred that caused content protection to be invalidated in a swap-chain with hardware content protection, and is usually because the system ran out of hardware protected memory. The app will need to do one of the following: - -
    -
  • Drastically reduce the amount of hardware protected memory used. For example, media applications might be able to reduce their buffering. -
  • -
  • Stop using hardware protection if possible.
  • -
-Note that simply re-creating the swap chain or the device will usually have no impact as the DWM will continue to run out of memory and will return the same failure.
-
- - - The eviction priority of the resource is high. The resource is placed in its preferred location instead of a low-priority or normal-priority resource. - Microsoft Docs: - - - - - Retrieves a debugging interface. - Microsoft Docs: - The globally unique identifier (GUID) of the requested interface type. - A pointer to a buffer that receives a pointer to the debugging interface. - - - - - Values that specify categories of debug messages. - Microsoft Docs: - - - - Unknown category. - - - Miscellaneous category. - - - Initialization category. - - - Cleanup category. - - - Compilation category. - - - State creation category. - - - State setting category. - - - State getting category. - - - Resource manipulation category. - - - Execution category. - - - Shader category. - - - - Outputs the IDXGIAdapter for the specified LUID. - Microsoft Docs: - A unique value that identifies the adapter. - See LUID for a definition of the structure. - LUID is defined in dxgi.h. - The globally unique identifier (GUID) of the IDXGIAdapter object referenced by the ppvAdapter parameter. - The address of an IDXGIAdapter interface pointer to the adapter. - This parameter must not be NULL. - - - - - The DXGI_OUTDUPL_MOVE_RECT structure describes the movement of a rectangle. - Microsoft Docs: - - - - The starting position of a rectangle. - - - The target region to which to move a rectangle. - - - - Gets the output (the display monitor) to which you can restrict the contents of a present operation. - Microsoft Docs: - A pointer to a buffer that receives a pointer to the IDXGIOutput interface for the restrict-to output. An application passes this pointer to IDXGIOutput in a call to the IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow, or IDXGIFactory2::CreateSwapChainForComposition method to create the swap chain. - - - - - Extends IDXGISwapChain1 with methods to support swap back buffer scaling and lower-latency swap chains. - Microsoft Docs: - - - - - Pushes a deny-all storage filter onto the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the filter. - - - - - Gets the source region that is used for the swap chain. - Microsoft Docs: - A pointer to a RECT structure - that receives the source region for the swap chain. - - - - - Set an interface in the object's private data. - Microsoft Docs: - A GUID identifying the interface. - The interface to set. - - - - - Provides an adapter which can be provided to D3D12CreateDevice to use the WARP renderer. - Microsoft Docs: - The globally unique identifier (GUID) of the IDXGIAdapter object referenced by the ppvAdapter parameter. - The address of an IDXGIAdapter interface pointer to the adapter. - This parameter must not be NULL. - - - - - Describes a debug message filter, which contains lists of message types to allow and deny. - Microsoft Docs: - - - - A DXGI_INFO_QUEUE_FILTER_DESC structure that describes the types of messages to allow. - - - A DXGI_INFO_QUEUE_FILTER_DESC structure that describes the types of messages to deny. - - - - Sets the rotation of the back buffers for the swap chain. - Microsoft Docs: - A DXGI_MODE_ROTATION-typed value that specifies how to set the rotation of the back buffers for the swap chain. - - - - - Describes which levels of hardware composition are supported. - Microsoft Docs: - - - - This flag specifies that swapchain composition can be facilitated in a performant manner using hardware for fullscreen applications. - - - This flag specifies that swapchain composition can be facilitated in a performant manner using hardware for windowed applications. - - - This flag specifies that swapchain composition facilitated using hardware can cause the cursor to appear stretched. - - - - Adds a debug message to the message queue and sends that message to the debug output. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that produced the message. - A DXGI_INFO_QUEUE_MESSAGE_CATEGORY-typed value that specifies the category of the message. - A DXGI_INFO_QUEUE_MESSAGE_SEVERITY-typed value that specifies the severity of the message. - An integer that uniquely identifies the message. - The message string. - - - - - This interface represents a display subsystem, and extends this family of interfaces to expose a method to check for an adapter's compatibility with Arbitrary Code Guard (ACG). - Microsoft Docs: - - - - - Pops a storage filter from the top of the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pops the filter. - - - - - Gets a message from the message queue. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the message. - An index into the message queue after an optional retrieval filter has been applied. This can be between 0 and the number of messages in the message queue that pass through the retrieval filter. Call IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters to obtain this number. 0 is the message at the beginning of the message queue. - A pointer to a DXGI_INFO_QUEUE_MESSAGE structure that describes the message. - A pointer to a variable that receives the size, in bytes, of the message description that pMessage points to. This size includes the size of the DXGI_INFO_QUEUE_MESSAGE structure in bytes. - - - - - Gets the display modes that match the requested format and other input options. - Microsoft Docs: - A DXGI_FORMAT-typed value for the color format. - A combination of DXGI_ENUM_MODES-typed values that are combined by using a bitwise OR operation. The resulting value specifies options for display modes to include. You must specify DXGI_ENUM_MODES_SCALING to expose the display modes that require scaling. Centered modes that require no - scaling and correspond directly to the display output are enumerated by default. - A pointer to a variable that receives the number of display modes that GetDisplayModeList1 returns in the memory block to which pDesc points. Set pDesc to NULL so that pNumModes returns the number of display modes that match the format and the options. - Otherwise, pNumModes returns the number of display modes returned in pDesc. - A pointer to a list of display modes; set to NULL to get the number of display modes. - - - - - Sets the number of frames that the system is allowed to queue for rendering. - Microsoft Docs: - The maximum number of back buffer frames that a driver can queue. The value defaults to 3, but - can range from 1 to 16. A value of 0 will reset latency to the default. For multi-head devices, this value is specified per-head. - - - - - The color channels contain values that are premultiplied with the alpha channel. - Microsoft Docs: - - - - - Sets the size of the destination surface to use for the video processing blit operation. - Microsoft Docs: - The width of the destination size, in pixels. - The height of the destination size, in pixels. - - - - - Gets the number of messages that were denied passage through a storage filter. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the number. - - - - - Pushes a deny-all retrieval filter onto the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the deny-all retrieval filter. - - - - - An IDXGIObject interface is a base interface for all DXGI objects; IDXGIObject supports associating caller-defined (private data) with an object and retrieval of an interface to the parent object. - Microsoft Docs: - - - - - This interface enables a single method that enumerates graphics adapters based on a given GPU preference. - Microsoft Docs: - - - - - Finds the display mode that most closely matches the requested display mode. - Microsoft Docs: - A pointer to the DXGI_MODE_DESC1 structure that describes the display mode to match. Members of DXGI_MODE_DESC1 can be unspecified, which indicates no preference for - that member. A value of 0 for Width or Height indicates that the value is unspecified. If either Width or - Height is 0, both must be 0. A numerator and denominator of 0 in RefreshRate indicate it is unspecified. Other members - of DXGI_MODE_DESC1 have enumeration values that indicate that the member is unspecified. If pConcernedDevice is NULL, the Formatmember of DXGI_MODE_DESC1 cannot be DXGI_FORMAT_UNKNOWN. - A pointer to the DXGI_MODE_DESC1 structure that receives a description of the display mode that most closely matches the display mode described at pModeToMatch. - A pointer to the Direct3D device interface. If this parameter is NULL, FindClosestMatchingMode1 returns only modes whose format matches that of pModeToMatch; otherwise, FindClosestMatchingMode1 returns only those formats that are supported for scan-out by the device. For info about the formats that are supported for scan-out by the device at each feature level: - - - - - - - Unregisters a window or an event to stop it from receiving notification when occlusion status changes. - Microsoft Docs: - A key value for the window or event to unregister. The IDXGIFactory2::RegisterOcclusionStatusWindow or IDXGIFactory2::RegisterOcclusionStatusEvent method returns this value. - - - - - The resource is evicted from memory only if there is no other way of resolving the memory requirement. - Microsoft Docs: - - - - - The IDXGIDevice2 interface implements a derived class for DXGI objects that produce image data. The interface exposes methods to block CPU processing until the GPU completes processing, and to offer resources to the operating system. - Microsoft Docs: - - - - - Pushes a copy of the retrieval filter that is currently on the top of the retrieval-filter stack onto the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the copy of the retrieval filter. - - - - - Unregisters a window or an event to stop it from receiving notification when stereo status changes. - Microsoft Docs: - A key value for the window or event to unregister. The IDXGIFactory2::RegisterStereoStatusWindow or IDXGIFactory2::RegisterStereoStatusEvent method returns this value. - - - - - Notifies applications that hardware stretching is supported. - Microsoft Docs: - A bitfield of DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS enumeration values describing which types of hardware composition are supported. The values are bitwise OR'd together. - - - - - Create an adapter interface that represents a software adapter. - Microsoft Docs: - Handle to the software adapter's dll. HMODULE can be obtained with GetModuleHandle or LoadLibrary. - Address of a pointer to an adapter (see IDXGIAdapter). - - - - - Unregisters an event to stop it from receiving notification of hardware content protection teardown events. - Microsoft Docs: - A key value for the window or event to unregister. The IDXGIAdapter3::RegisterHardwareContentProtectionTeardownStatusEvent method returns this value. - - - - - Get the state associated with full-screen mode. - Microsoft Docs: - A pointer to a boolean whose value is either: - - -
    -
  • TRUE if the swap chain is in full-screen mode
  • -
  • FALSE if the swap chain is in windowed mode
  • -
- A pointer to the output target (see IDXGIOutput) when the mode is full screen; otherwise NULL. -
-
- - - Informs an application of the possible need to re-enumerate adapters. - Microsoft Docs: - - - - - Describes multi-sampling parameters for a resource. - Microsoft Docs: - - - - The number of multisamples per pixel. - - - The image quality level. The higher the quality, the lower the performance. The valid range is between zero and one less than the level returned - by ID3D10Device::CheckMultisampleQualityLevels for Direct3D 10 or ID3D11Device::CheckMultisampleQualityLevels for Direct3D 11. - -For Direct3D 10.1 and Direct3D 11, you can use two special quality level values. For more information about these quality level values, see Remarks. - - - - Don't use this structure; it is not supported and it will be removed from the header in a future release. - Microsoft Docs: - - - - The primary coordinates, as an 8 by 2 array of FLOAT values. - - - The white points, as a 16 by 2 array of FLOAT values. - - - - Allows the operating system to free the video memory of resources by discarding their content. - Microsoft Docs: - The number of resources in the ppResources argument array. - An array of pointers to IDXGIResource interfaces for the resources to offer. - A DXGI_OFFER_RESOURCE_PRIORITY-typed value that indicates how valuable data is. - - - - - Extends IDXGISwapChain2 with methods to support getting the index of the swap chain's current back buffer and support for color space. - Microsoft Docs: - - - - - Sets the gamma controls. - Microsoft Docs: - A pointer to a DXGI_GAMMA_CONTROL structure that describes the gamma curve to set. - - - - - This method sets High Dynamic Range (HDR) and Wide Color Gamut (WCG) header metadata. - Microsoft Docs: - Specifies one member of the DXGI_HDR_METADATA_TYPE enum. - Specifies the size of pMetaData, in bytes. - Specifies a void pointer that references the metadata, if it exists. Refer to the DXGI_HDR_METADATA_HDR10 structure. - - - - - Describes a mapped rectangle that is used to access a surface. - Microsoft Docs: - - - - A value that describes the width, in bytes, of the surface. - - - A pointer to the image buffer of the surface. - - - - Gets the storage filter at the top of the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the filter. - A pointer to a DXGI_INFO_QUEUE_FILTER structure that describes the filter. - A pointer to a variable that receives the size, in bytes, of the filter description to which pFilter points. If pFilter is NULL, GetStorageFilter outputs the size of the storage filter. - - - - - The IDXGIDevice3 interface implements a derived class for DXGI objects that produce image data. The interface exposes a method to trim graphics memory usage by the DXGI device. - Microsoft Docs: - - - - - An IDXGIDevice interface implements a derived class for DXGI objects that produce image data. - Microsoft Docs: - - - - - Gets a DXGI 1.0 description of an adapter (or video card). - Microsoft Docs: - A pointer to a DXGI_ADAPTER_DESC structure that describes the adapter. This parameter must not be NULL. On feature level 9 graphics hardware, GetDesc returns zeros for the PCI ID in the VendorId, DeviceId, SubSysId, and Revision members of DXGI_ADAPTER_DESC and “Software Adapter” for the description string in the Description member. - - - - - Gets the retrieval filter at the top of the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the filter. - A pointer to a DXGI_INFO_QUEUE_FILTER structure that describes the filter. - A pointer to a variable that receives the size, in bytes, of the filter description to which pFilter points. If pFilter is NULL, GetRetrievalFilter outputs the size of the retrieval filter. - - - - - Sets the display state to windowed or full screen. - Microsoft Docs: - A Boolean value that specifies whether to set the display state to windowed or full screen. TRUE for full screen, and FALSE for windowed. - If you pass TRUE to the Fullscreen parameter to set the display state to full screen, you can optionally set this parameter to a pointer to an IDXGIOutput interface for the output target that contains the swap chain. If you set this parameter to NULL, DXGI will choose the output based on the swap-chain's device and the output window's placement. If you pass FALSE to Fullscreen, then you must set this parameter to NULL. - - - - - Pushes a retrieval filter onto the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the filter. - A pointer to a DXGI_INFO_QUEUE_FILTER structure that describes the filter. - - - - - Adds retrieval filters to the top of the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that produced the filters. - An array of DXGI_INFO_QUEUE_FILTER structures that describe the filters. - - - - - Retrieves the underlying CoreWindow object for this swap-chain object. - Microsoft Docs: - A pointer to the globally unique identifier (GUID) of the CoreWindow object that is referenced by - the ppUnk parameter. - A pointer to a variable that receives a pointer to the CoreWindow object. - - - - - Allows the operating system to free the video memory of resources, including both discarding the content and de-committing the memory. - Microsoft Docs: - The number of resources in the ppResources argument array. - An array of pointers to IDXGIResource interfaces for the resources to offer. - A DXGI_OFFER_RESOURCE_PRIORITY-typed value that indicates how valuable data is. - Specifies the DXGI_OFFER_RESOURCE_FLAGS. - - - - - This interface provides updated methods to offer and reclaim resources. - Microsoft Docs: - - - - - Creates a swap chain that is associated with an HWND handle to the output window for the swap chain. - Microsoft Docs: - For Direct3D 11, and earlier versions of Direct3D, this is a pointer to the Direct3D device for the swap chain. For Direct3D 12 this is a pointer to a direct command queue (refer to ID3D12CommandQueue). This parameter cannot be NULL. - The HWND handle that is associated with the swap chain that CreateSwapChainForHwnd creates. This parameter cannot be NULL. - A pointer to a DXGI_SWAP_CHAIN_DESC1 structure for the swap-chain description. This parameter cannot be NULL. - A pointer to a DXGI_SWAP_CHAIN_FULLSCREEN_DESC structure for the description of a full-screen swap chain. You can optionally set this parameter to create a full-screen swap chain. Set it to NULL to create a windowed swap chain. - A pointer to the IDXGIOutput interface for the output to restrict content to. You must also pass the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag in a IDXGISwapChain1::Present1 call to force the content to appear blacked out on any other output. If you want to restrict the content to a different output, you must create a new swap chain. However, you can conditionally restrict content based on the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag. - - -Set this parameter to NULL if you don't want to restrict content to an output target. - A pointer to a variable that receives a pointer to the IDXGISwapChain1 interface for the swap chain that CreateSwapChainForHwnd creates. - - - - - Inherited from objects that are tied to the device so that they can retrieve a pointer to it. - Microsoft Docs: - - - - - Sets the color space used by the swap chain. - Microsoft Docs: - A pointer to a combination of DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS-typed values that are combined by using a bitwise OR operation. The resulting value specifies the color space to set for the swap chain. - - - - - Sets the rectangle that defines the source region for the video processing blit operation. - Microsoft Docs: - A pointer to a RECT structure - that contains the source region to set for the swap chain. - - - - - Finds the display mode that most closely matches the requested display mode. - Microsoft Docs: - The desired display mode (see DXGI_MODE_DESC). Members of DXGI_MODE_DESC can be unspecified indicating no preference for - that member. A value of 0 for Width or Height indicates the value is unspecified. If either Width or - Height are 0, both must be 0. A numerator and denominator of 0 in RefreshRate indicate it is unspecified. Other members - of DXGI_MODE_DESC have enumeration values indicating the member is unspecified. If pConcernedDevice is NULL, Formatcannot be DXGI_FORMAT_UNKNOWN. - The mode that most closely matches pModeToMatch. - A pointer to the Direct3D device interface. If this parameter is NULL, only modes whose format matches that of pModeToMatch will - be returned; otherwise, only those formats that are supported for scan-out by the device are returned. For info about the formats that are supported for scan-out by the device at each feature level: - - - - - - - Represents an adapter output (such as a monitor). The IDXGIOutput6 interface exposes methods to provide specific monitor capabilities. - Microsoft Docs: - - - - - Checks whether the system supports a device interface for a graphics component. - Microsoft Docs: - The GUID of the interface of the device version for which support is being checked. This should usually be __uuidof(IDXGIDevice), which returns the version number of the Direct3D 9 UMD (user mode driver) binary. Since WDDM 2.3, all driver components within a driver package (D3D9, D3D11, and D3D12) have been required to share a single version number, so this is a good way to query the driver version regardless of which API is being used. - The user mode driver version of InterfaceName. This is returned only if the interface is supported, otherwise this parameter will be NULL. - - - - - Retrieves the underlying HWND for this swap-chain object. - Microsoft Docs: - A pointer to a variable that receives the HWND for the swap-chain object. - - - - - Sets a message category to break on when a message with that category passes through the storage filter. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that sets the breaking condition. - A DXGI_INFO_QUEUE_MESSAGE_CATEGORY-typed value that specifies the category of the message. - A Boolean value that specifies whether SetBreakOnCategory turns on or off this breaking condition (TRUE for on, FALSE for off). - - - - - The IDXGISurface2 interface extends the IDXGISurface1 interface by adding support for subresource surfaces and getting a handle to a shared resource. - Microsoft Docs: - - - - - Identifies the type of DXGI adapter. - Microsoft Docs: - - - - Specifies no flags. - - - Value always set to 0. This flag is reserved. - - - Specifies a software adapter. For more info about this flag, see new info in Windows 8 about enumerating adapters. - -Direct3D 11:  This enumeration value is supported starting with Windows 8. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile - to a size other than 32 bits. This value is not used. - - - - Get a pointer to the object's data. - Microsoft Docs: - A GUID identifying the data. - The size of the data. - Pointer to the data. - - - - - Enables creating Microsoft DirectX Graphics Infrastructure (DXGI) objects. - Microsoft Docs: - - - - - Checks the swap chain's support for color space. - Microsoft Docs: - A DXGI_COLOR_SPACE_TYPE-typed value that specifies color space type to check support for. - A pointer to a variable that receives a combination of DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG-typed values that are combined by using a bitwise OR operation. The resulting value specifies options for color space support. - - - - - Gets the number of messages currently stored in the message queue. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the number. - - - - - An IDXGIFactory interface implements methods for generating DXGI objects (which handle full screen transitions). - Microsoft Docs: - - - - - Describes the current video memory budgeting parameters. - Microsoft Docs: - - - - Specifies the OS-provided video memory budget, in bytes, that the application should target. If CurrentUsage is greater than Budget, the application may incur stuttering or performance penalties due to background activity by the OS to provide other applications with a fair usage of video memory. - - - Specifies the application’s current video memory usage, in bytes. - - - The amount of video memory, in bytes, that the application has available for reservation. To reserve this video memory, the application should call IDXGIAdapter3::SetVideoMemoryReservation. - - - The amount of video memory, in bytes, that is reserved by the application. The OS uses the reservation as a hint to determine the application’s minimum working set. Applications should attempt to ensure that their video memory usage can be trimmed to meet this requirement. - - - - Get an extended description of the output that includes color characteristics and connection type. - Microsoft Docs: - A pointer to the output description (see DXGI_OUTPUT_DESC1). - - - - - Registers to receive notification of changes in occlusion status by using event signaling. - Microsoft Docs: - A handle to the event object that the operating system sets when notification of occlusion status change occurs. The CreateEvent or OpenEvent function returns this handle. - A pointer to a key value that an application can pass to the IDXGIFactory2::UnregisterOcclusionStatus method to unregister the notification event that hEvent specifies. - - - - - Represents a swap chain that is used by desktop media apps to decode video data and show it on a DirectComposition surface. - Microsoft Docs: - - - - - Creates a swap chain that is associated with the CoreWindow object for the output window for the swap chain. - Microsoft Docs: - For Direct3D 11, and earlier versions of Direct3D, this is a pointer to the Direct3D device for the swap chain. For Direct3D 12 this is a pointer to a direct command queue (refer to ID3D12CommandQueue). This parameter cannot be NULL. - A pointer to the CoreWindow object that is associated with the swap chain that CreateSwapChainForCoreWindow creates. - A pointer to a DXGI_SWAP_CHAIN_DESC1 structure for the swap-chain description. This parameter cannot be NULL. - A pointer to the IDXGIOutput interface that the swap chain is restricted to. If the swap chain is moved to a different output, the content is black. You can optionally set this parameter to an output target that uses DXGI_PRESENT_RESTRICT_TO_OUTPUT to restrict the content on this output. If you do not set this parameter to restrict content on an output target, you can set it to NULL. - A pointer to a variable that receives a pointer to the IDXGISwapChain1 interface for the swap chain that CreateSwapChainForCoreWindow creates. - - - - - Gets the parent resource and subresource index that support a subresource surface. - Microsoft Docs: - The globally unique identifier (GUID) of the requested interface type. - A pointer to a buffer that receives a pointer to the parent resource object for the subresource surface. - A pointer to a variable that receives the index of the subresource surface. - - - - - This method establishes a correlation between a CPU synchronization object and the budget change event. - Microsoft Docs: - Specifies a HANDLE for the event. - A key value for the window or event to unregister. The IDXGIAdapter3::RegisterHardwareContentProtectionTeardownStatusEvent method returns this value. - - - - - Sets a message identifier to break on when a message with that identifier passes through the storage filter. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that sets the breaking condition. - An integer value that specifies the identifier of the message. - A Boolean value that specifies whether SetBreakOnID turns on or off this breaking condition (TRUE for on, FALSE for off). - - - - - Gets a value indicating whether leak tracking is turned on for the current thread. - Microsoft Docs: - - - - - Creates a swap chain that you can use to send Direct3D content into the DirectComposition API or the Windows.UI.Xaml framework to compose in a window. - Microsoft Docs: - For Direct3D 11, and earlier versions of Direct3D, this is a pointer to the Direct3D device for the swap chain. For Direct3D 12 this is a pointer to a direct command queue (refer to ID3D12CommandQueue). This parameter cannot be NULL. Software drivers, like D3D_DRIVER_TYPE_REFERENCE, are not supported for composition swap chains. - A pointer to a DXGI_SWAP_CHAIN_DESC1 structure for the swap-chain description. This parameter cannot be NULL. - -You must specify the DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL value in the SwapEffect member of DXGI_SWAP_CHAIN_DESC1 because CreateSwapChainForComposition supports only flip presentation model. - -You must also specify the DXGI_SCALING_STRETCH value in the Scaling member of DXGI_SWAP_CHAIN_DESC1. - A pointer to the IDXGIOutput interface for the output to restrict content to. You must also pass the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag in a IDXGISwapChain1::Present1 call to force the content to appear blacked out on any other output. If you want to restrict the content to a different output, you must create a new swap chain. However, you can conditionally restrict content based on the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag. - - -Set this parameter to NULL if you don't want to restrict content to an output target. - A pointer to a variable that receives a pointer to the IDXGISwapChain1 interface for the swap chain that CreateSwapChainForComposition creates. - - - - - Gets the number of messages that a storage filter allowed to pass through. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the number. - - - - - Indicates that the application finished processing the frame. - Microsoft Docs: - - - - - Retrieves the device. - Microsoft Docs: - The reference id for the device. - The address of a pointer to the device. - - - - - Set a Boolean value to either enable or disable the operating system's stereoscopic 3D display behavior. - Microsoft Docs: - A Boolean value that either enables or disables the operating system's stereoscopic 3D display behavior. TRUE enables the operating system's stereoscopic 3D display behavior and FALSE disables it. - - - - - Creates a YUV swap chain for an existing DirectComposition surface handle. - Microsoft Docs: - A pointer to the Direct3D device for the swap chain. This parameter cannot be NULL. Software drivers, like D3D_DRIVER_TYPE_REFERENCE, are not supported for composition swap chains. - A handle to an existing DirectComposition surface. This parameter cannot be NULL. - A pointer to a DXGI_SWAP_CHAIN_DESC1 structure for the swap-chain description. This parameter cannot be NULL. - A pointer to the IDXGIOutput interface for the swap chain to restrict content to. If the swap chain is moved to a different output, the content is black. You can optionally set this parameter to an output target that uses DXGI_PRESENT_RESTRICT_TO_OUTPUT to restrict the content on this output. If the swap chain is moved to a different output, the content is black. - -You must also pass the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag in a present call to force the content to appear blacked out on any other output. If you want to restrict the content to a different output, you must create a new swap chain. However, you can conditionally restrict content based on the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag. - -Set this parameter to NULL if you don't want to restrict content to an output target. - A pointer to a variable that receives a pointer to the IDXGISwapChain1 interface for the swap chain that this method creates. - - - - - Used to verify system approval for the app's custom present duration (custom refresh rate). - Microsoft Docs: - - - - A value that represents the running total count of times that an image was presented to the monitor since the computer booted. - -
Note  The number of times that an image was presented to the monitor is not necessarily the same as the number of times - that you called IDXGISwapChain::Present or IDXGISwapChain1::Present1.
-
 
-
- - A value that represents the running total count of v-blanks at which the last image was presented to the monitor and that have happened since the computer booted (for windowed mode, since the swap chain was created). - - - A value that represents the running total count of v-blanks when the scheduler last sampled the machine time by calling QueryPerformanceCounter and that have happened since the computer booted (for windowed mode, since the swap chain was created). - - - A value that represents the high-resolution performance counter timer. - This value is the same as the value returned by the QueryPerformanceCounter - function. - - - Reserved. Always returns 0. - - - A value indicating the composition presentation mode. This value is used to determine whether the app should continue to use the decode swap chain. See DXGI_FRAME_PRESENTATION_MODE. - - - If the system approves an app's custom present duration request, this field is set to the approved custom present duration. - -If the app's custom present duration request is not approved, this field is set to zero. - - - - Identifies the type of DXGI adapter. - Microsoft Docs: - - - - Specifies no flags. - - - Value always set to 0. This flag is reserved. - - - Specifies a software adapter. For more info about this flag, see new info in Windows 8 about enumerating adapters. - -Direct3D 11:  This enumeration value is supported starting with Windows 8. - - - Specifies that the adapter's driver has been confirmed to work in an OS process where Arbitrary Code Guard (ACG) is enabled (i.e. dynamic code generation is disallowed). - - - Specifies that the adapter supports monitored fences. These adapters support the ID3D12Device::CreateFence and ID3D11Device5::CreateFence functions. - - - Specifies that the adapter supports non-monitored fences. These adapters support the ID3D12Device::CreateFence function together with the D3D12_FENCE_FLAG_NON_MONITORED flag. - -
Note  For adapters that support both monitored and non-monitored fences, non-monitored fences are only supported when created with the D3D12_FENCE_FLAG_SHARED and D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER flags. Monitored fences should always be used by supporting adapters unless communicating with an adapter that only supports non-monitored fences.
-
 
-
- - Specifies that the adapter claims keyed mutex conformance. This signals a stronger guarantee that the IDXGIKeyedMutex interface behaves correctly. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used. - - - - Takes ownership of an output. - Microsoft Docs: - A pointer to the IUnknown interface of a device (such as an ID3D10Device). - Set to TRUE to enable other threads or applications to take ownership of the device; otherwise, set to FALSE. - - - - - Accesses one of the swap-chain's back buffers. - Microsoft Docs: - A zero-based buffer index. - -If the swap chain's swap effect is DXGI_SWAP_EFFECT_DISCARD, this method can only access the first buffer; for this situation, set the index to zero. - -If the swap chain's swap effect is either DXGI_SWAP_EFFECT_SEQUENTIAL or DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL, only the swap chain's zero-index buffer can be read from and written to. The swap chain's buffers with indexes greater than zero can only be read from; so if you call the IDXGIResource::GetUsage method for such buffers, they have the DXGI_USAGE_READ_ONLY flag set. - The type of interface used to manipulate the buffer. - A pointer to a back-buffer interface. - - - - - Enumerate adapter (video card) outputs. - Microsoft Docs: - The index of the output. - The address of a pointer to an IDXGIOutput interface at the position specified by the Output parameter. - - - - - Requests a custom presentation duration (custom refresh rate). - Microsoft Docs: - The custom presentation duration, specified in hundreds of nanoseconds. - - - - - Reports info about the lifetime of an object or objects. - Microsoft Docs: - The globally unique identifier (GUID) of the object or objects to get info about. Use one of the DXGI_DEBUG_ID GUIDs. - A DXGI_DEBUG_RLO_FLAGS-typed value that specifies the amount of info to report. - - - - - Gets the transform matrix that will be applied to a composition swap chain upon the next present. - Microsoft Docs: - [out] - -The transform matrix currently used for swap chain scaling and translation. - - - - - Gets the number of times that IDXGISwapChain::Present or IDXGISwapChain1::Present1 has been called. - Microsoft Docs: - A pointer to a variable that receives the number of calls. - - - - - Returns a waitable handle that signals when the DXGI adapter has finished presenting a new frame. - Microsoft Docs: - - - - - Enumerates graphics adapters based on a given GPU preference. - Microsoft Docs: - The index of the adapter to enumerate. The indices are in order of the preference specified in GpuPreference—for example, if DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE is specified, then the highest-performing adapter is at index 0, the second-highest is at index 1, and so on. - The GPU preference for the app. - The globally unique identifier (GUID) of the IDXGIAdapter object referenced by the ppvAdapter parameter. - The address of an IDXGIAdapter interface pointer to the adapter. - -This parameter must not be NULL. - - - - - Determines whether to use stereo mode. - Microsoft Docs: - - - - - Queries the system for a DXGI_FRAME_STATISTICS_MEDIA structure that indicates whether a custom refresh rate is currently approved by the system. - Microsoft Docs: - A DXGI_FRAME_STATISTICS_MEDIA structure indicating whether the system currently approves the custom refresh rate request. - - - - - Get the output (the display monitor) that contains the majority of the client area of the target window. - Microsoft Docs: - A pointer to the output interface (see IDXGIOutput). - - - - - Flags indicating the memory location of a resource. - Microsoft Docs: - - - - The resource is located in video memory. - - - At least some of the resource is located in CPU memory. - - - At least some of the resource has been paged out to the hard drive. - - - - Gets information about the new pointer shape for the current desktop frame. - Microsoft Docs: - The size in bytes of the buffer that the caller passed to the pPointerShapeBuffer parameter. - A pointer to a buffer to which GetFramePointerShape copies and returns pixel data for the new pointer shape. - Pointer to a variable that receives the number of bytes that GetFramePointerShape needs to store the new pointer shape pixel data in the buffer at pPointerShapeBuffer. - -For more information about returning the required buffer size, see Remarks. - Pointer to a DXGI_OUTDUPL_POINTER_SHAPE_INFO structure that receives the pointer shape information. - - - - - An IDXGIOutput interface represents an adapter output (such as a monitor). - Microsoft Docs: - - - - - Creates a swap chain. - Microsoft Docs: - For Direct3D 11, and earlier versions of Direct3D, this is a pointer to the Direct3D device for the swap chain. For Direct3D 12 this is a pointer to a direct command queue (refer to ID3D12CommandQueue) . This parameter cannot be NULL. - A pointer to a DXGI_SWAP_CHAIN_DESC structure for the swap-chain description. This parameter cannot be NULL. - A pointer to a variable that receives a pointer to the IDXGISwapChain interface for the swap chain that CreateSwapChain creates. - - - - - Gets performance statistics about the last render frame. - Microsoft Docs: - A pointer to a DXGI_FRAME_STATISTICS structure for the frame statistics. - - - - - The IDXGIFactory2 interface includes methods to create a newer version swap chain with more features than IDXGISwapChain and to monitor stereoscopic 3D capabilities. - Microsoft Docs: - - - - - Identifies the alpha value, transparency behavior, of a surface. - Microsoft Docs: - - - - Indicates that the transparency behavior is not specified. - - - Indicates that the transparency behavior is premultiplied. Each color is first scaled by the alpha value. The alpha value itself is the same in both straight and premultiplied alpha. Typically, no color channel value is greater than the alpha channel value. If a color channel value in a premultiplied format is greater than the alpha channel, the standard source-over blending math results in an additive blend. - - - Indicates that the transparency behavior is not premultiplied. The alpha channel indicates the transparency of the color. - - - Indicates to ignore the transparency behavior. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile - to a size other than 32 bits. This value is not used. - - - - Describes a surface. - Microsoft Docs: - - - - A value describing the surface width. - - - A value describing the surface height. - - - A member of the DXGI_FORMAT enumerated type that describes the surface format. - - - A member of the DXGI_SAMPLE_DESC structure that describes multi-sampling parameters for the surface. - - - - Changes the swap chain's back buffer size, format, and number of buffers. This should be called when the application window is resized. - Microsoft Docs: - The number of buffers in the swap chain (including all back and front buffers). - This number can be different from the number of buffers with which you created the swap chain. - This number can't be greater than DXGI_MAX_SWAP_CHAIN_BUFFERS. - Set this number to zero to preserve the existing number of buffers in the swap chain. - You can't specify less than two buffers for the flip presentation model. - The new width of the back buffer. - If you specify zero, DXGI will use the width of the client area of the target window. - You can't specify the width as zero if you called the IDXGIFactory2::CreateSwapChainForComposition method to create the swap chain for a composition surface. - The new height of the back buffer. - If you specify zero, DXGI will use the height of the client area of the target window. - You can't specify the height as zero if you called the IDXGIFactory2::CreateSwapChainForComposition method to create the swap chain for a composition surface. - A DXGI_FORMAT-typed value for the new format of the back buffer. - Set this value to DXGI_FORMAT_UNKNOWN to preserve the existing format of the back buffer. - The flip presentation model supports a more restricted set of formats than the bit-block transfer (bitblt) model. - A combination of DXGI_SWAP_CHAIN_FLAG-typed values that are combined by using a bitwise OR operation. - The resulting value specifies options for swap-chain behavior. - - - - - The IDXGIOutputDuplication interface accesses and manipulates the duplicated desktop image. - Microsoft Docs: - - - - - The DXGI_OUTDUPL_POINTER_SHAPE_INFO structure describes information about the cursor shape. - Microsoft Docs: - - - - A DXGI_OUTDUPL_POINTER_SHAPE_TYPE-typed value that specifies the type of cursor shape. - - - The width in pixels of the mouse cursor. - - - The height in scan lines of the mouse cursor. - - - The width in bytes of the mouse cursor. - - - The position of the cursor's hot spot relative to its upper-left pixel. An application does not use the hot spot when it determines where to draw the cursor shape. - - - - Gets a description of the swap chain. - Microsoft Docs: - A pointer to a DXGI_SWAP_CHAIN_DESC1 structure that describes the swap chain. - - - - - This interface controls the debug information queue, and can only be used if the debug layer is turned on. - Microsoft Docs: - - - - - Specifies the memory segment group to use. - Microsoft Docs: - - - - The grouping of segments which is considered local to the video adapter, and represents the fastest available memory to the GPU. Applications should target the local segment group as the target size for their working set. - - - The grouping of segments which is considered non-local to the video adapter, and may have slower performance than the local segment group. - - - - This interface exposes a single method for setting video metadata. - Microsoft Docs: - - - - - Registers an application window to receive notification messages of changes of occlusion status. - Microsoft Docs: - The handle of the window to send a notification message to when occlusion status change occurs. - Identifies the notification message to send. - A pointer to a key value that an application can pass to the IDXGIFactory2::UnregisterOcclusionStatus method to unregister the notification message that wMsg specifies. - - - - - Gets the handle to a shared resource. - Microsoft Docs: - A pointer to a handle. - - - - - Queries the graphics driver for a supported frame present duration corresponding to a custom refresh rate. - Microsoft Docs: - Indicates the frame duration to check. This value is the duration of one frame at the desired refresh rate, specified in hundreds of nanoseconds. For example, set this field to 167777 to check for 60 Hz refresh rate support. - A variable that will be set to the closest supported frame present duration that's smaller than the requested value, or zero if the device does not support any lower duration. - A variable that will be set to the closest supported frame present duration that's larger than the requested value, or zero if the device does not support any higher duration. - - - - - Gets the index of the swap chain's current back buffer. - Microsoft Docs: - - - - - Gets the maximum number of messages that can be added to the message queue. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the number. - - - - - Identifies the granularity at which the graphics processing unit (GPU) can be preempted from performing its current graphics rendering task. - Microsoft Docs: - - - - Indicates the preemption granularity as a DMA buffer. - - - Indicates the preemption granularity as a graphics primitive. A primitive is a section in a DMA buffer and can be a group of triangles. - - - Indicates the preemption granularity as a triangle. A triangle is a part of a primitive. - - - Indicates the preemption granularity as a pixel. A pixel is a part of a triangle. - - - Indicates the preemption granularity as a graphics instruction. A graphics instruction operates on a pixel. - - - - This method stops notifying a CPU synchronization object whenever a budget change occurs. An application may switch back to polling the information regularly. - Microsoft Docs: - A key value for the window or event to unregister. The IDXGIAdapter3::RegisterHardwareContentProtectionTeardownStatusEvent method returns this value. - - - - - Gets the rectangle that defines the target region for the video processing blit operation. - Microsoft Docs: - A pointer to a RECT structure - that receives the target region for the swap chain. - - - - - Provides the CPU with efficient access to a desktop image if that desktop image is already in system memory. - Microsoft Docs: - A pointer to a DXGI_MAPPED_RECT structure that receives the surface data that the CPU needs to directly access the surface data. - - - - - Describes a display mode and whether the display mode supports stereo. - Microsoft Docs: - - - - A value that describes the resolution width. - - - A value that describes the resolution height. - - - A DXGI_RATIONAL structure that describes the refresh rate in hertz. - - - A DXGI_FORMAT-typed value that describes the display format. - - - A DXGI_MODE_SCANLINE_ORDER-typed value that describes the scan-line drawing mode. - - - A DXGI_MODE_SCALING-typed value that describes the scaling mode. - - - Specifies whether the full-screen display mode is stereo. TRUE if stereo; otherwise, FALSE. - - - - Represents an adapter output (such as a monitor). The IDXGIOutput2 interface exposes a method to check for multiplane overlay support on the primary output adapter. - Microsoft Docs: - - - - - Halt a thread until the next vertical blank occurs. - Microsoft Docs: - - - - - Gets the residency status of an array of resources. - Microsoft Docs: - An array of IDXGIResource interfaces. - An array of DXGI_RESIDENCY flags. Each element describes the residency status for corresponding element in - the ppResources argument array. - The number of resources in the ppResources argument array and pResidencyStatus argument array. - - - - - This interface enables registration for notifications to detect adapter enumeration state changes. - Microsoft Docs: - - - - - Get the expected resource usage. - Microsoft Docs: - A pointer to a usage flag (see DXGI_USAGE). For Direct3D 10, a surface can be used as a shader input or a render-target output. - - - - - Unregisters an event to stop receiving notifications when the adapter enumeration state changes. - Microsoft Docs: - A key value for the event to unregister. - - - - - The DXGI_OUTDUPL_DESC structure describes the dimension of the output and the surface that contains the desktop image. The format of the desktop image is always DXGI_FORMAT_B8G8R8A8_UNORM. - Microsoft Docs: - - - - A DXGI_MODE_DESC structure that describes the display mode of the duplicated output. - - - A member of the DXGI_MODE_ROTATION enumerated type that describes how the duplicated output rotates an image. - - - Specifies whether the resource that contains the desktop image is already located in system memory. TRUE if the resource is in system memory; otherwise, FALSE. If this value is TRUE and the application requires CPU access, it can use the IDXGIOutputDuplication::MapDesktopSurface and IDXGIOutputDuplication::UnMapDesktopSurface methods to avoid copying the data into a staging buffer. - - - - This method sends the minimum required physical memory for an application, to the OS. - Microsoft Docs: - Specifies the device's physical adapter for which the video memory information is being set. - For single-GPU operation, set this to zero. - If there are multiple GPU nodes, set this to the index of the node (the device's physical adapter) for which the video memory information is being set. - See Multi-adapter systems. - Specifies a DXGI_MEMORY_SEGMENT_GROUP that identifies the group as local or non-local. - Specifies a UINT64 that sets the minimum required physical memory, in bytes. - - - - - Determines whether a swap chain supports “temporary mono.” - Microsoft Docs: - - - - - Allows DXGI to monitor an application's message queue for the alt-enter key sequence (which causes the application to switch from windowed to full screen or vice versa). - Microsoft Docs: - The handle of the window that is to be monitored. This parameter can be NULL; but only if Flags is also 0. - - - - - - Controls debug settings for Microsoft DirectX Graphics Infrastructure (DXGI). You can use the IDXGIDebug1 interface in Windows Store apps. - Microsoft Docs: - - - - - Changes the swap chain's back buffer size, format, and number of buffers, where the swap chain was created using a D3D12 command queue as an input device. This should be called when the application window is resized. - Microsoft Docs: - The number of buffers in the swap chain (including all back and front buffers). - This number can be different from the number of buffers with which you created the swap chain. - This number can't be greater than DXGI_MAX_SWAP_CHAIN_BUFFERS. - Set this number to zero to preserve the existing number of buffers in the swap chain. - You can't specify less than two buffers for the flip presentation model. - The new width of the back buffer. - If you specify zero, DXGI will use the width of the client area of the target window. - You can't specify the width as zero if you called the IDXGIFactory2::CreateSwapChainForComposition method to create the swap chain for a composition surface. - The new height of the back buffer. - If you specify zero, DXGI will use the height of the client area of the target window. - You can't specify the height as zero if you called the IDXGIFactory2::CreateSwapChainForComposition method to create the swap chain for a composition surface. - A DXGI_FORMAT-typed value for the new format of the back buffer. - Set this value to DXGI_FORMAT_UNKNOWN to preserve the existing format of the back buffer. - The flip presentation model supports a more restricted set of formats than the bit-block transfer (bitblt) model. - A combination of DXGI_SWAP_CHAIN_FLAG-typed values that are combined by using a bitwise OR operation. - The resulting value specifies options for swap-chain behavior. - An array of UINTs, of total size BufferCount, where the value indicates which node the back buffer should be created on. - Buffers created using ResizeBuffers1 with a non-null pCreationNodeMask array are visible to all nodes. - An array of command queues (ID3D12CommandQueue instances), of total size BufferCount. - Each queue provided must match the corresponding creation node mask specified in the pCreationNodeMask array. - When Present() is called, in addition to rotating to the next buffer for the next frame, the swapchain will also rotate through these command queues. - This allows the app to control which queue requires synchronization for a given present operation. - - - - - Removes a storage filter from the top of the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that removes the filter. - - - - - Restores access to resources that were previously offered by calling IDXGIDevice2::OfferResources. - Microsoft Docs: - The number of resources in the ppResources argument and pDiscarded argument arrays. - An array of pointers to IDXGIResource interfaces for the resources to reclaim. - A pointer to an array that receives Boolean values. Each value in the array corresponds to a resource at the same index that the ppResources parameter specifies. The runtime sets each Boolean value to TRUE if the corresponding resource’s content was discarded and is now undefined, or to FALSE if the corresponding resource’s old content is still intact. The caller can pass in NULL, if the caller intends to fill the resources with new content regardless of whether the old content was discarded. - - - - - Turns the debug output on or off. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the mute status. - A Boolean value that specifies whether to turn the debug output on or off (TRUE for on, FALSE for off). - - - - - Sets the source region to be used for the swap chain. - Microsoft Docs: - Source width to use for the swap chain. This value must be greater than zero, and must be less than or equal to the overall width of the swap chain. - Source height to use for the swap chain. This value must be greater than zero, and must be less than or equal to the overall height of the swap chain. - - - - - Allows a process to indicate that it's resilient to any of its graphics devices being removed. - Microsoft Docs: - - - - - Used with IDXGIFactoryMedia::CreateDecodeSwapChainForCompositionSurfaceHandle to describe a decode swap chain. - Microsoft Docs: - - - - Can be 0, or a combination of DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO and/or DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO. Those named values are members of the DXGI_SWAP_CHAIN_FLAG enumerated type, and you can combine them by using a bitwise OR operation. The resulting value specifies options for decode swap-chain behavior. - - - - The DXGI_OUTDUPL_FRAME_INFO structure describes the current desktop image. - Microsoft Docs: - - - - The time stamp of the last update of the desktop image. The operating system calls the QueryPerformanceCounter - function to obtain the value. A zero value indicates that the desktop image was not updated since an application last called the IDXGIOutputDuplication::AcquireNextFrame method to acquire the next frame of the desktop image. - - - The time stamp of the last update to the mouse. The operating system calls the QueryPerformanceCounter - function to obtain the value. A zero value indicates that the position or shape of the mouse was not updated since an application last called the IDXGIOutputDuplication::AcquireNextFrame method to acquire the next frame of the desktop image. The mouse position is always supplied for a mouse update. A new pointer shape is indicated by a non-zero value in the PointerShapeBufferSize member. - - - The number of frames that the operating system accumulated in the desktop image surface since the calling application processed the last desktop image. For more information about this number, see Remarks. - - - Specifies whether the operating system accumulated updates by coalescing dirty regions. Therefore, the dirty regions might contain unmodified pixels. TRUE if dirty regions were accumulated; otherwise, FALSE. - - - Specifies whether the desktop image might contain protected content that was already blacked out in the desktop image. TRUE if protected content was already blacked; otherwise, FALSE. The application can use this information to notify the remote user that some of the desktop content might be protected and therefore not visible. - - - A DXGI_OUTDUPL_POINTER_POSITION structure that describes the most recent mouse position if the LastMouseUpdateTime member is a non-zero value; otherwise, this value is ignored. This value provides the coordinates of the location where the top-left-hand corner of the pointer shape is drawn; this value is not the desktop position of the hot spot. - - - Size in bytes of the buffers to store all the desktop update metadata for this frame. For more information about this size, see Remarks. - - - Size in bytes of the buffer to hold the new pixel data for the mouse shape. For more information about this size, see Remarks. - - - - Flushes any outstanding rendering commands and sets the specified event object to the signaled state after all previously submitted rendering commands complete. - Microsoft Docs: - A handle to the event object. The CreateEvent or OpenEvent function returns this handle. All types of event objects (manual-reset, auto-reset, and so on) are supported. - -The handle must have the EVENT_MODIFY_STATE access right. For more information about access rights, see Synchronization Object Security and Access Rights. - - - - - Specifies result flags for the ReclaimResources1 method. - Microsoft Docs: - - - - The surface was successfully reclaimed and has valid content. This result is identical to the false value returned by the older ReclaimResources API. - - - The surface was reclaimed, but the old content was lost and must be regenerated. This result is identical to the true value returned by the older ReclaimResources API. - - - Both the surface and its contents are lost and invalid. The surface must be -recreated and the content regenerated in order to be used. All future use of that resource is invalid. Attempts to bind it to the pipeline or map a resource which returns this value will never succeed, and the resource cannot be reclaimed again. - - - - Gets the rotation of the back buffers for the swap chain. - Microsoft Docs: - A pointer to a variable that receives a DXGI_MODE_ROTATION-typed value that specifies the rotation of the back buffers for the swap chain. - - - - - Gets a copy of the current display surface. - Microsoft Docs: - A pointer to a destination surface (see IDXGISurface). - - - - - Represents an adapter output (such as a monitor). The IDXGIOutput5 interface exposes a single method to specify a list of supported formats for fullscreen surfaces. - Microsoft Docs: - - - - - Sets the color space used by the swap chain. - Microsoft Docs: - A DXGI_COLOR_SPACE_TYPE-typed value that specifies the color space to set. - - - - - Sets the maximum number of messages that can be added to the message queue. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that sets the limit on the number of messages. - The maximum number of messages that can be added to the queue. –1 means no limit. - - - - - Resizes the output target. - Microsoft Docs: - A pointer to a DXGI_MODE_DESC structure that describes the mode, which specifies the new width, height, format, and refresh rate of the target. - If the format is DXGI_FORMAT_UNKNOWN, ResizeTarget uses the existing format. We only recommend that you use DXGI_FORMAT_UNKNOWN when the swap chain is in full-screen - mode as this method is not thread safe. - - - - - Pops a retrieval filter from the top of the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pops the filter. - - - - - Gets the flags that were used when a Microsoft DirectX Graphics Infrastructure (DXGI) object was created. - Microsoft Docs: - - - - - The eviction priority of the resource is low. The placement of the resource is not critical, and minimal work is performed to find a location for the resource. For example, if a GPU can render with a vertex buffer from either local or non-local memory with little difference in performance, that vertex buffer is low priority. Other more critical resources (for example, a render target or texture) can then occupy the faster memory. - Microsoft Docs: - - - - - Returns a surface. This method is used internally and you should not call it directly in your application. - Microsoft Docs: - A pointer to a DXGI_SURFACE_DESC structure that describes the surface. - The number of surfaces to create. - A DXGI_USAGE flag that specifies how the surface is expected to be used. - An optional pointer to a DXGI_SHARED_RESOURCE structure that contains shared resource information for opening views of such resources. - The address of an IDXGISurface interface pointer to the first created surface. - - - - - The IDXGIFactory1 interface implements methods for generating DXGI objects. - Microsoft Docs: - - - - - Options for handling pixels in a display surface after calling IDXGISwapChain1::Present1. - Microsoft Docs: - - - - Use this flag to specify the bit-block transfer (bitblt) model and to specify that DXGI discard the contents of the back buffer after you call IDXGISwapChain1::Present1. - This flag is valid for a swap chain with more than one back buffer, although, applications only have read and write access to buffer 0. - Use this flag to enable the display driver to select the most efficient presentation technique for the swap chain. - -Direct3D 12: This enumeration value is never supported. D3D12 apps must using DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL or DXGI_SWAP_EFFECT_FLIP_DISCARD. - -
Note  There are differences between full screen exclusive and full screen UWP. If you are porting a Direct3D 11 application to UWP on a Windows PC, be aware that the use of DXGI_SWAP_EFFECT_DISCARD when creating swap chains does -not behave the same way in UWP as it does in Win32, and its use may be detrimental to GPU performance. - -This is because UWP applications are forced into FLIP swap modes (even if other swap modes are set), because this reduces the computation -time used by the memory copies originally done by the older bitblt model. - -The recommended approach is to manually convert DX11 Discard swap chains to use flip models within UWP, using DXGI_SWAP_EFFECT_FLIP_DISCARD instead of DXGI_SWAP_EFFECT_DISCARD where possible. - Refer to the Example below, and see this article for more information.
-
 
-
- - Use this flag to specify the bitblt model and to specify that DXGI persist the contents of the back buffer after you call IDXGISwapChain1::Present1. - Use this option to present the contents of the swap chain in order, from the first buffer (buffer 0) to the last buffer. - This flag cannot be used with multisampling. - -Direct3D 12: This enumeration value is never supported. D3D12 apps must using DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL or DXGI_SWAP_EFFECT_FLIP_DISCARD. - - -
Note  For best performance, use DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL instead of DXGI_SWAP_EFFECT_SEQUENTIAL. See this article for more information.
-
 
-
- - Use this flag to specify the flip presentation model and to specify that DXGI persist the contents of the back buffer after you call IDXGISwapChain1::Present1. This flag cannot be used with multisampling. - - -Direct3D 11:  This enumeration value is supported starting with Windows 8. - - - Use this flag to specify the flip presentation model and to specify that DXGI discard the contents of the back buffer after you call IDXGISwapChain1::Present1. - This flag cannot be used with multisampling and partial presentation. - See DXGI 1.4 Improvements. - - -Direct3D 11:  This enumeration value is supported starting with Windows 10. - - -
Note  Windows Store apps must use DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL or DXGI_SWAP_EFFECT_FLIP_DISCARD. -
-
 
-
- - - Get a description of the output. - Microsoft Docs: - A pointer to the output description (see DXGI_OUTPUT_DESC). - - - - - Allows specifying a list of supported formats for fullscreen surfaces that can be returned by the IDXGIOutputDuplication object. - Microsoft Docs: - A pointer to the Direct3D device interface that you can use to process the desktop image. This device must be created from the adapter to which the output is connected. - Reserved for future use; must be zero. - Specifies the number of supported formats. - Specifies an array, of length SupportedFormatsCount of DXGI_FORMAT entries. - A pointer to a variable that receives the new IDXGIOutputDuplication interface. - - - - - Retrieves the background color of the swap chain. - Microsoft Docs: - A pointer to a DXGI_RGBA structure that receives the background color of the swap chain. - - - - - Retrieves a Boolean value that indicates whether the operating system's stereoscopic 3D display behavior is enabled. - Microsoft Docs: - - - - - Pushes an empty storage filter onto the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the empty storage filter. - - - - - Using a key, releases exclusive rendering access to a shared resource. - Microsoft Docs: - A value that indicates which device to give access to. This method succeeds when the device that currently owns the surface calls the ReleaseSync method using the same value. This value can be any UINT64 value. - - - - - Specifies color space support for the swap chain. - Microsoft Docs: - - - - Color space support is present. - - - Overlay color space support is present. - - - - Enumerates both adapters (video cards) with or without outputs. - Microsoft Docs: - The index of the adapter to enumerate. - The address of a pointer to an IDXGIAdapter1 interface at the position specified by the Adapter parameter. - This parameter must not be NULL. - - - - - An IDXGISwapChain interface implements one or more surfaces for storing rendered data before presenting it to an output. - Microsoft Docs: - - - - - Specifies overlay support to check for in a call to IDXGIOutput3::CheckOverlaySupport. - Microsoft Docs: - - - - Direct overlay support. - - - Scaling overlay support. - - - - Creates swap chains for desktop media apps that use DirectComposition surfaces to decode and display video. - Microsoft Docs: - - - - - Presents a frame on the display screen. - Microsoft Docs: - An integer that specifies how to synchronize presentation of a frame with the vertical blank. - - -For the bit-block transfer (bitblt) model (DXGI_SWAP_EFFECT_DISCARDor DXGI_SWAP_EFFECT_SEQUENTIAL), values are: - -
    -
  • 0 - The presentation occurs immediately, there is no synchronization.
  • -
  • 1 through 4 - Synchronize presentation after the nth vertical blank.
  • -
-For the flip model (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), values are: - -
    -
  • 0 - Cancel the remaining time on the previously presented frame and discard this frame if a newer frame is queued. -
  • -
  • 1 through 4 - Synchronize presentation for at least n vertical blanks.
  • -
-For an example that shows how sync-interval values affect a flip presentation queue, see Remarks. - -If the update region straddles more than one output (each represented by IDXGIOutput1), Present1 performs the synchronization to the output that contains the largest sub-rectangle of the target window's client area. - An integer value that contains swap-chain presentation options. These options are defined by the DXGI_PRESENT constants. - A pointer to a DXGI_PRESENT_PARAMETERS structure that describes updated rectangles and scroll information of the frame to present. -
-
- - - Describes an adapter (or video card) that uses Microsoft DirectX Graphics Infrastructure (DXGI) 1.2. - Microsoft Docs: - - - - A string that contains the adapter description. - - - The PCI ID of the hardware vendor. - - - The PCI ID of the hardware device. - - - The PCI ID of the sub system. - - - The PCI ID of the revision number of the adapter. - - - The number of bytes of dedicated video memory that are not shared with the CPU. - - - The number of bytes of dedicated system memory that are not shared with the CPU. This memory is allocated from available system memory at boot time. - - - The number of bytes of shared system memory. This is the maximum value of system memory that may be consumed by the adapter during operation. Any incidental memory consumed by the driver as it manages and uses video memory is additional. - - - A unique value that identifies the adapter. See LUID for a definition of the structure. LUID is defined in dxgi.h. - - - A value of the DXGI_ADAPTER_FLAG enumerated type that describes the adapter type. The DXGI_ADAPTER_FLAG_REMOTE flag is reserved. - - - A value of the DXGI_GRAPHICS_PREEMPTION_GRANULARITY enumerated type that describes the granularity level at which the GPU can be preempted from performing its current graphics rendering task. - - - A value of the DXGI_COMPUTE_PREEMPTION_GRANULARITY enumerated type that describes the granularity level at which the GPU can be preempted from performing its current compute task. - - - - Identifies the importance of a resource’s content when you call the IDXGIDevice2::OfferResources method to offer the resource. - Microsoft Docs: - - - - The resource is low priority. The operating system discards a low priority resource before other offered resources with higher priority. It is a good programming practice to mark a resource as low priority if it has no useful content. - - - The resource is normal priority. You mark a resource as normal priority if it has content that is easy to regenerate. - - - The resource is high priority. The operating system discards other offered resources with lower priority before it discards a high priority resource. You mark a resource as high priority if it has useful content that is difficult to regenerate. - - - - Returns the adapter for the specified device. - Microsoft Docs: - The address of an IDXGIAdapter interface pointer to the adapter. This parameter must not be NULL. - - - - - Describes a swap chain. - Microsoft Docs: - - - - A value that describes the resolution width. If you specify the width as zero when you call the - IDXGIFactory2::CreateSwapChainForHwnd - method to create a swap chain, the runtime obtains the width from the output window and assigns this width value - to the swap-chain description. You can subsequently call the - IDXGISwapChain1::GetDesc1 method to - retrieve the assigned width value. You cannot specify the width as zero when you call the - IDXGIFactory2::CreateSwapChainForComposition - method. - - - A value that describes the resolution height. If you specify the height as zero when you call the - IDXGIFactory2::CreateSwapChainForHwnd - method to create a swap chain, the runtime obtains the height from the output window and assigns this height - value to the swap-chain description. You can subsequently call the - IDXGISwapChain1::GetDesc1 method to - retrieve the assigned height value. You cannot specify the height as zero when you call the - IDXGIFactory2::CreateSwapChainForComposition - method. - - - A DXGI_FORMAT structure that describes the - display format. - - - Specifies whether the full-screen display mode or the swap-chain back buffer is stereo. - TRUE if stereo; otherwise, FALSE. If you specify stereo, you - must also specify a flip-model swap chain (that is, a swap chain that has the - DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL - value set in the SwapEffect member). - - - A DXGI_SAMPLE_DESC structure that - describes multi-sampling parameters. This member is valid only with bit-block transfer (bitblt) model swap - chains. - - - A DXGI_USAGE-typed value that describes the - surface usage and CPU access options for the back buffer. The back buffer can be used for shader input or - render-target output. - - - A value that describes the number of buffers in the swap chain. When you create a full-screen swap chain, - you typically include the front buffer in this value. - - - A DXGI_SCALING-typed value that identifies - resize behavior if the size of the back buffer is not equal to the target output. - - - A DXGI_SWAP_EFFECT-typed value - that describes the presentation model that is used by the swap chain and options for handling the contents of - the presentation buffer after presenting a surface. You must specify the - DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL - value when you call the - IDXGIFactory2::CreateSwapChainForComposition - method because this method supports only flip - presentation model. - - - A DXGI_ALPHA_MODE-typed value that - identifies the transparency behavior of the swap-chain back buffer. - - - A combination of - DXGI_SWAP_CHAIN_FLAG-typed values that are - combined by using a bitwise OR operation. The resulting value specifies options for swap-chain behavior. - - - - This interface adds some memory residency methods, for budgeting and reserving physical memory. - Microsoft Docs: - - - - - The IDXGIDisplayControl interface exposes methods to indicate user preference for the operating system's stereoscopic 3D display behavior and to set stereoscopic 3D display status to enable or disable. - Microsoft Docs: - - - - - Set the priority for evicting the resource from memory. - Microsoft Docs: - - - - - - Identifies the type of pointer shape. - Microsoft Docs: - - - - The pointer type is a monochrome mouse pointer, which is a monochrome bitmap. The bitmap's size is specified by width and height in a 1 bits per pixel (bpp) device independent bitmap (DIB) format AND mask that is followed by another 1 bpp DIB format XOR mask of the same size. - - - The pointer type is a color mouse pointer, which is a color bitmap. The bitmap's size is specified by width and height in a 32 bpp ARGB DIB format. - - - The pointer type is a masked color mouse pointer. A masked color mouse pointer is a 32 bpp ARGB format bitmap with the mask value in the alpha bits. The only allowed mask values are 0 and 0xFF. When the mask value is 0, the RGB value should replace the screen pixel. When the mask value is 0xFF, an XOR operation is performed on the RGB value and the screen pixel; the result replaces the screen pixel. - - - - Changes the background color of the swap chain. - Microsoft Docs: - A pointer to a DXGI_RGBA structure that specifies the background color to set. - - - - - The preference of GPU for the app to run on. - Microsoft Docs: - - - - No preference of GPU. - - - Preference for the minimum-powered GPU (such as an integrated graphics processor, or iGPU). - - - Preference for the highest performing GPU, such as a discrete graphics processor (dGPU) or external graphics processor (xGPU). - - - - Registers to receive notification of hardware content protection teardown events. - Microsoft Docs: - A handle to the event object that the operating system sets when hardware content protection teardown occurs. The CreateEvent or OpenEvent function returns this handle. - A pointer to a key value that an application can pass to the IDXGIAdapter3::UnregisterHardwareContentProtectionTeardownStatus method to unregister the notification event that hEvent specifies. - - - - - Gets the gamma control settings. - Microsoft Docs: - An array of gamma control settings (see DXGI_GAMMA_CONTROL). - - - - - Represents a rational number. - Microsoft Docs: - - - - An unsigned integer value representing the top of the rational number. - - - An unsigned integer value representing the bottom of the rational number. - - - - This interface controls debug settings, and can only be used if the debug layer is turned on. - Microsoft Docs: - - - - - Gets the size of the retrieval-filter stack in bytes. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the size. - - - - - Removes a retrieval filter from the top of the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that removes the filter. - - - - - The alpha channel is not specified. This value has the same effect as DXGI_ALPHA_MODE_IGNORE. - Microsoft Docs: - - - - - Pushes a storage filter onto the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the filter. - A pointer to a DXGI_INFO_QUEUE_FILTER structure that describes the filter. - - - - - Specifies flags for the OfferResources1 method. - Microsoft Docs: - - - - Indicates the ability to allow memory de-commit by the DirectX Graphics Kernel. - - - - Invalidate the pointer to the surface retrieved by IDXGISurface::Map and re-enable GPU access to the resource. - Microsoft Docs: - - - - - Gets a description of the gamma-control capabilities. - Microsoft Docs: - A pointer to a description of the gamma-control capabilities (see DXGI_GAMMA_CONTROL_CAPABILITIES). - - - - - Adds a user-defined message to the message queue and sends that message to the debug output. - Microsoft Docs: - A DXGI_INFO_QUEUE_MESSAGE_SEVERITY-typed value that specifies the severity of the message. - The message string. - - - - - Invalidates the pointer to the desktop image that was retrieved by using IDXGIOutputDuplication::MapDesktopSurface. - Microsoft Docs: - - - - - Used to check for hardware feature support. - Microsoft Docs: - Specifies one member of DXGI_FEATURE to query support for. - Specifies a pointer to a buffer that will be filled with data that describes the feature support. - The size, in bytes, of pFeatureSupportData. - - - - - The resource is unused and can be evicted as soon as another resource requires the memory that the resource occupies. - Microsoft Docs: - - - - - Specifies a range of hardware features, to be used when checking for feature support. - Microsoft Docs: - - - - The display supports tearing, a requirement of variable refresh rate displays. - - - - The eviction priority of the resource is normal. The placement of the resource is important, but not critical, for performance. The resource is placed in its preferred location instead of a low-priority resource. - Microsoft Docs: - - - - - The DXGI_OUTDUPL_POINTER_POSITION structure describes the position of the hardware cursor. - Microsoft Docs: - - - - The position of the hardware cursor relative to the top-left of the adapter output. - - - Specifies whether the hardware cursor is visible. TRUE if visible; otherwise, FALSE. If the hardware cursor is not visible, the calling application does not display the cursor in the client. - - - - The IDXGIAdapter1 interface represents a display sub-system (including one or more GPU's, DACs and video memory). - Microsoft Docs: - - - - - The IDXGISurface interface implements methods for image-data objects. - Microsoft Docs: - - - - - Specifies support for overlay color space. - Microsoft Docs: - - - - Overlay color space support is present. - - - - Determines whether the break on a message category is turned on or off. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the breaking status. - A DXGI_INFO_QUEUE_MESSAGE_CATEGORY-typed value that specifies the category of the message. - - - - - Queries an adapter output for multiplane overlay support. - Microsoft Docs: - - - - - Releases the GDI device context (DC) that is associated with the current surface and allows you to use Direct3D to render. - Microsoft Docs: - A pointer to a RECT structure that identifies the dirty region of the surface. - A dirty region is any part of the surface that you used for GDI rendering and that you want to preserve. - This area is used as a performance hint to graphics subsystem in certain scenarios. - Do not use this parameter to restrict rendering to the specified rectangular region. - If you pass in NULL, ReleaseDC considers the whole surface as dirty. - Otherwise, ReleaseDC uses the area specified by the RECT as a performance hint to indicate what areas have been manipulated by GDI rendering. - -You can pass a pointer to an empty RECT structure (a rectangle with no position or area) if you didn't change any content. - - - - - Provides presentation capabilities that are enhanced from IDXGISwapChain. These presentation capabilities consist of specifying dirty rectangles and scroll rectangle to optimize the presentation. - Microsoft Docs: - - - - - Describes the types of messages to allow or deny to pass through a filter. - Microsoft Docs: - - - - The number of message categories to allow or deny. - - - An array of DXGI_INFO_QUEUE_MESSAGE_CATEGORY enumeration values that describe the message categories to allow or deny. The array must have at least NumCategories number of elements. - - - The number of message severity levels to allow or deny. - - - An array of DXGI_INFO_QUEUE_MESSAGE_SEVERITY enumeration values that describe the message severity levels to allow or deny. The array must have at least NumSeverities number of elements. - - - The number of message IDs to allow or deny. - - - An array of integers that represent the message IDs to allow or deny. The array must have at least NumIDs number of elements. - - - - Represents a handle to a shared resource. - Microsoft Docs: - - - - A handle to a shared resource. - - - - An IDXGIResource1 interface extends the IDXGIResource interface by adding support for creating a subresource surface object and for creating a handle to a shared resource. - Microsoft Docs: - - - - - Get a pointer to the data contained in the surface, and deny GPU access to the surface. - Microsoft Docs: - A pointer to the surface data (see DXGI_MAPPED_RECT). - CPU read-write flags. These flags can be combined with a logical OR. - - - -
    -
  • DXGI_MAP_READ - Allow CPU read access.
  • -
  • DXGI_MAP_WRITE - Allow CPU write access.
  • -
  • DXGI_MAP_DISCARD - Discard the previous contents of a resource when it is mapped.
  • -
-
-
- - - The IDXGIAdapter2 interface represents a display subsystem, which includes one or more GPUs, DACs, and video memory. - Microsoft Docs: - - - - - Starts tracking leaks for the current thread. - Microsoft Docs: - - - - - Get the eviction priority. - Microsoft Docs: - A pointer to the eviction priority, which determines when a resource can be evicted from memory. - -The following defined values are possible. - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
DXGI_RESOURCE_PRIORITY_MINIMUM (0x28000000)
-
-
-The resource is unused and can be evicted as soon as another resource requires the memory that the resource occupies. - -
-
DXGI_RESOURCE_PRIORITY_LOW (0x50000000)
-
-
-The eviction priority of the resource is low. The placement of the resource is not critical, and minimal work is performed to find a location for the resource. For example, if a GPU can render with a vertex buffer from either local or non-local memory with little difference in performance, that vertex buffer is low priority. Other more critical resources (for example, a render target or texture) can then occupy the faster memory. - -
-
DXGI_RESOURCE_PRIORITY_NORMAL (0x78000000)
-
-
-The eviction priority of the resource is normal. The placement of the resource is important, but not critical, for performance. The resource is placed in its preferred location instead of a low-priority resource. - -
-
DXGI_RESOURCE_PRIORITY_HIGH (0xa0000000)
-
-
-The eviction priority of the resource is high. The resource is placed in its preferred location instead of a low-priority or normal-priority resource. - -
-
DXGI_RESOURCE_PRIORITY_MAXIMUM (0xc8000000)
-
-
-The resource is evicted from memory only if there is no other way of resolving the memory requirement. - -
-
-
- - - This method informs the process of the current budget and process usage. - Microsoft Docs: - Specifies the device's physical adapter for which the video memory information is queried. - For single-GPU operation, set this to zero. - If there are multiple GPU nodes, set this to the index of the node (the device's physical adapter) for which the video memory information is queried. - See Multi-adapter systems. - Specifies a DXGI_MEMORY_SEGMENT_GROUP that identifies the group as local or non-local. - Fills in a DXGI_QUERY_VIDEO_MEMORY_INFO structure with the current values. - - - - - Gets the number of frames that the swap chain is allowed to queue for rendering. - Microsoft Docs: - The maximum number of back buffer frames that will be queued for the swap chain. This value is 1 by default, but should be set to 2 if the scene takes longer than it takes for one vertical refresh (typically about 16ms) to draw. - - - - - Trims the graphics memory allocated by the IDXGIDevice3 DXGI device on the app's behalf. - Microsoft Docs: - - - - - Sets the number of frames that the swap chain is allowed to queue for rendering. - Microsoft Docs: - The maximum number of back buffer frames that will be queued for the swap chain. This value is 1 by default. - - - - - Values that specify debug message severity levels for an information queue. - Microsoft Docs: - - - - Defines some type of corruption that has occurred. - - - Defines an error message. - - - Defines a warning message. - - - Defines an information message. - - - Defines a message other than corruption, error, warning, or information. - - - - Gets a description of a full-screen swap chain. - Microsoft Docs: - A pointer to a DXGI_SWAP_CHAIN_FULLSCREEN_DESC structure that describes the full-screen swap chain. - - - - - Describes full-screen mode for a swap chain. - Microsoft Docs: - - - - A DXGI_RATIONAL structure that describes the refresh rate in hertz. - - - A member of the DXGI_MODE_SCANLINE_ORDER enumerated type that describes the scan-line drawing mode. - - - A member of the DXGI_MODE_SCALING enumerated type that describes the scaling mode. - - - A Boolean value that specifies whether the swap chain is in windowed mode. TRUE if the swap chain is in windowed mode; otherwise, FALSE. - - - - Describes timing and presentation statistics for a frame. - Microsoft Docs: - - - - A value that represents the running total count of times that an image was presented to the monitor since the computer booted. - -
Note  The number of times that an image was presented to the monitor is not necessarily the same as the number of times - that you called IDXGISwapChain::Present or IDXGISwapChain1::Present1.
-
 
-
- - A value that represents the running total count of v-blanks at which the last image was presented to the monitor and that have happened since the computer booted (for windowed mode, since the swap chain was created). - - - A value that represents the running total count of v-blanks when the scheduler last sampled the machine time by calling QueryPerformanceCounter and that have happened since the computer booted (for windowed mode, since the swap chain was created). - - - A value that represents the high-resolution performance counter timer. - This value is the same as the value returned by the QueryPerformanceCounter - function. - - - Reserved. Always returns 0. - - - - Gets information about the moved rectangles for the current desktop frame. - Microsoft Docs: - The size in bytes of the buffer that the caller passed to the pMoveRectBuffer parameter. - A pointer to an array of - DXGI_OUTDUPL_MOVE_RECT structures - that identifies the moved rectangle regions for the desktop frame. - Pointer to a variable that receives the number of bytes that - GetFrameMoveRects - needs to store information about moved regions in the buffer at pMoveRectBuffer. - -For more information about returning the required buffer size, see Remarks. - - - - - Gets statistics about recently rendered frames. - Microsoft Docs: - A pointer to frame statistics (see DXGI_FRAME_STATISTICS). - - - - - Creates a desktop duplication interface from the IDXGIOutput1 interface that represents an adapter output. - Microsoft Docs: - A pointer to the Direct3D device interface that you can use to process the desktop image. This device must be created from the adapter to which the output is connected. - A pointer to a variable that receives the new IDXGIOutputDuplication interface. - - - - - Describes an output or physical connection between the adapter (video card) and a device, including additional information about color capabilities and connection type. - Microsoft Docs: - - - - A string that contains the name of the output device. - - - A RECT structure containing the bounds of the output in desktop coordinates. Desktop coordinates depend on the dots per inch (DPI) of the desktop. - For info about writing DPI-aware Win32 apps, see High DPI. - - - True if the output is attached to the desktop; otherwise, false. - - - A member of the DXGI_MODE_ROTATION enumerated type describing on how an image is rotated by the output. - - - An HMONITOR handle that represents the display monitor. For more information, see HMONITOR and the Device Context. - - - The number of bits per color channel for the active wire format of the display attached to this output. - - - The current advanced color capabilities of the display attached to this output. Specifically, whether its capable of reproducing color and luminance values outside of the sRGB color space. - A value of DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 indicates that the display is limited to SDR/sRGB; A value of DXGI_COLOR_SPACE_RGB_FULL_G2048_NONE_P2020 indicates that the display supports - advanced color capabilities. - -For detailed luminance and color capabilities, see additional members of this struct. - - - The red color primary, in xy coordinates, of the display attached to this output. This value will usually come from the EDID of the corresponding display or sometimes from an override. - - - The green color primary, in xy coordinates, of the display attached to this output. This value will usually come from the EDID of the corresponding display or sometimes from an override. - - - The blue color primary, in xy coordinates, of the display attached to this output. This value will usually come from the EDID of the corresponding display or sometimes from an override. - - - The white point, in xy coordinates, of the display attached to this output. This value will usually come from the EDID of the corresponding display or sometimes from an override. - - - The minimum luminance, in nits, that the display attached to this output is capable of rendering. Content should not exceed this minimum value for optimal rendering. This value will - usually come from the EDID of the corresponding display or sometimes from an override. - - - The maximum luminance, in nits, that the display attached to this output is capable of rendering; this value is likely only valid for a small area of the panel. Content should not exceed - this minimum value for optimal rendering. This value will usually come from the EDID of the corresponding display or sometimes from an override. - - - The maximum luminance, in nits, that the display attached to this output is capable of rendering; unlike MaxLuminance, this value is valid for a color that fills the entire area of the - panel. Content should not exceed this value across the entire panel for optimal rendering. This value will usually come from the EDID of the corresponding display or sometimes from an - override. - - - - An IDXGIOutput1 interface represents an adapter output (such as a monitor). - Microsoft Docs: - - - - - Stops tracking leaks for the current thread. - Microsoft Docs: - - - - - Get the window through which the user controls the transition to and from full screen. - Microsoft Docs: - A pointer to a window handle. - - - - - Creates a handle to a shared resource. You can then use the returned handle with multiple Direct3D devices. - Microsoft Docs: - A pointer to a SECURITY_ATTRIBUTES - structure that contains two separate but related data members: an optional security descriptor, and a Boolean - value that determines whether child processes can inherit the returned handle. - -Set this parameter to NULL if you want child processes that the - application might create to not inherit the handle returned by - CreateSharedHandle, and if you want the resource that is associated with the returned handle to get a default security - descriptor. - -The lpSecurityDescriptor member of the structure specifies a - SECURITY_DESCRIPTOR for the resource. Set - this member to NULL if you want the runtime to assign a default security descriptor to the resource that is associated with the returned handle. The ACLs in the default security descriptor for the resource come from the primary or impersonation token of the creator. For more info, see Synchronization Object Security and Access Rights. - The requested access rights to the resource. In addition to the generic access rights, DXGI defines the following values: - -
    -
  • DXGI_SHARED_RESOURCE_READ ( 0x80000000L ) - specifies read access to the resource.
  • -
  • DXGI_SHARED_RESOURCE_WRITE ( 1 ) - specifies write access to the resource.
  • -
-You can combine these values by using a bitwise OR operation. - The name of the resource to share. The name is limited to MAX_PATH characters. Name comparison is case sensitive. - -You will need the resource name if you call the ID3D11Device1::OpenSharedResourceByName method to access the shared resource by name. If you instead call the ID3D11Device1::OpenSharedResource1 method to access the shared resource by handle, set this parameter to NULL. - -If lpName matches the name of an existing resource, CreateSharedHandle fails with DXGI_ERROR_NAME_ALREADY_EXISTS. This occurs because these objects share the same namespace. - -The name can have a "Global\" or "Local\" prefix to explicitly create the object in the global or session namespace. The remainder of the name can contain any character except the backslash character (\\). For more information, see -Kernel Object Namespaces. Fast user switching is implemented using Terminal Services sessions. Kernel object names must follow the guidelines outlined for Terminal Services so that applications can support multiple users. - -The object can be created in a private namespace. For more information, see Object Namespaces. - A pointer to a variable that receives the NT HANDLE value to the resource to share. You can use this handle in calls to access the resource. -
-
- - - Enumerates the adapters (video cards). - Microsoft Docs: - The index of the adapter to enumerate. - The address of a pointer to an IDXGIAdapter interface at the position specified by the Adapter parameter. This parameter must not be NULL. - - - - - Pushes a copy of the storage filter that is currently on the top of the storage-filter stack onto the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the copy of the storage filter. - - - - - Releases ownership of the output. - Microsoft Docs: - - - - - Returns a device context (DC) that allows you to render to a Microsoft DirectX Graphics Infrastructure (DXGI) surface using Windows Graphics Device Interface (GDI). - Microsoft Docs: - A Boolean value that specifies whether to preserve Direct3D contents in the GDI DC. TRUE directs the runtime not to preserve Direct3D contents in the GDI DC; that is, the runtime discards the Direct3D contents. FALSE guarantees that Direct3D contents are available in the GDI DC. - A pointer to an HDC handle that represents the current device context for GDI rendering. - - - - - Adds storage filters to the top of the storage-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that produced the filters. - An array of DXGI_INFO_QUEUE_FILTER structures that describe the filters. - - - - - Determines whether the break on a message severity level is turned on or off. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the breaking status. - A DXGI_INFO_QUEUE_MESSAGE_SEVERITY-typed value that specifies the severity of the message. - - - - - Describes an output or physical connection between the adapter (video card) and a device. - Microsoft Docs: - - - - A string that contains the name of the output device. - - - A RECT structure containing the bounds of the output in desktop coordinates. Desktop coordinates depend on the dots per inch (DPI) of the desktop. -For info about writing DPI-aware Win32 apps, see High DPI. - - - True if the output is attached to the desktop; otherwise, false. - - - A member of the DXGI_MODE_ROTATION enumerated type describing on how an image is rotated by the output. - - - An HMONITOR handle that represents the display monitor. For more information, see HMONITOR and the Device Context. - - - - Options for swap-chain behavior. - Microsoft Docs: - - - - Set this flag to turn off automatic image rotation; that is, do not perform a rotation when transferring the contents of the front buffer to the monitor. - Use this flag to avoid a bandwidth penalty when an application expects to handle rotation. This option is valid only during full-screen mode. - - - Set this flag to enable an application to switch modes by calling IDXGISwapChain::ResizeTarget. - When switching from windowed to full-screen mode, the display mode (or monitor resolution) will be changed to match the dimensions of the application window. - - - Set this flag to enable an application to render using GDI on a swap chain or a surface. - This will allow the application to call IDXGISurface1::GetDC on the 0th back buffer or a surface. - -This flag is not applicable for Direct3D 12. - - - Set this flag to indicate that the swap chain might contain protected content; therefore, the operating system supports the creation of the swap chain only when driver and hardware protection is used. If the driver and hardware do not support content protection, the call to create a resource for the swap chain fails. - -Direct3D 11:  This enumeration value is supported starting with Windows 8. - - - Set this flag to indicate that shared resources that are created within the swap chain must be protected by using the driver’s mechanism for restricting access to shared surfaces. - -Direct3D 11:  This enumeration value is supported starting with Windows 8. - - - Set this flag to restrict presented content to the local displays. Therefore, the presented content is not accessible via remote accessing or through the desktop duplication APIs. - -This flag supports the window content protection features of Windows. Applications can use this flag to protect their own onscreen window content from being captured or copied through a specific set of public operating system features and APIs. - -If you use this flag with windowed (HWND or IWindow) swap chains where another process created the HWND, the owner of the HWND must use the SetWindowDisplayAffinity function appropriately in order to allow calls to IDXGISwapChain::Present or IDXGISwapChain1::Present1 to succeed. - - -Direct3D 11:  This enumeration value is supported starting with Windows 8. - - - Set this flag to create a waitable object you can use to ensure rendering does not begin while a frame is still being presented. When this flag is used, the swapchain's latency must be set with the IDXGISwapChain2::SetMaximumFrameLatency API instead of IDXGIDevice1::SetMaximumFrameLatency. - -This flag isn't supported in full-screen mode, unless the render API is Direct3D 12. - -Note  This enumeration value is supported starting with Windows 8.1. - - - Set this flag to create a swap chain in the foreground layer for multi-plane rendering. This flag can only be used with CoreWindow swap chains, which are created with CreateSwapChainForCoreWindow. Apps should not create foreground swap chains if IDXGIOutput2::SupportsOverlays indicates that hardware support for overlays is not available. - -Note that IDXGISwapChain::ResizeBuffers cannot be used to add or remove this flag. - -Note  This enumeration value is supported starting with Windows 8.1. - - - Set this flag to create a swap chain for full-screen video. - -Note  This enumeration value is supported starting with Windows 8.1. - - - Set this flag to create a swap chain for YUV video. - -Note  This enumeration value is supported starting with Windows 8.1. - - - Indicates that the swap chain should be created such that all underlying resources can be protected by the hardware. Resource creation will fail if hardware content protection is not supported. - -This flag has the following restrictions: - -
    -
  • This flag can only be used with swap effect DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL.
  • -
-
Note  Creating a swap chain using this flag does not automatically guarantee that hardware protection will be enabled for the underlying allocation. Some implementations require that the DRM components are first initialized prior to any guarantees of protection.
-
 
-Note  This enumeration value is supported starting with Windows 10.
-
- - Tearing support is a requirement to enable displays that support variable refresh rates to function properly when the application presents a swap chain tied to a full screen borderless window. Win32 apps can already achieve tearing in fullscreen exclusive mode by calling SetFullscreenState(TRUE), but the recommended approach for Win32 developers is to use this tearing flag instead. This flag requires the use of a DXGI_SWAP_EFFECT_FLIP_* swap effect. - -To check for hardware support of this feature, refer to IDXGIFactory5::CheckFeatureSupport. For usage information refer to IDXGISwapChain::Present and the DXGI_PRESENT flags. - - - - Options for swap-chain color space. - Microsoft Docs: - - - - Specifies nominal range YCbCr, which isn't an absolute color space, but a way of encoding RGB info. - - - Specifies BT.709, which standardizes the format of high-definition television and has 16:9 (widescreen) aspect ratio. - - - Specifies xvYCC or extended-gamut YCC (also x.v.Color) color space that can be used in the video electronics of television sets to support a gamut 1.8 times as large as that of the sRGB color space. - - - - Describes an adapter (or video card) using DXGI 1.1. - Microsoft Docs: - - - - A string that contains the adapter description. On feature level 9 graphics hardware, GetDesc1 returns “Software Adapter” for the description string. - - - The PCI ID of the hardware vendor. On feature level 9 graphics hardware, GetDesc1 returns zeros for the PCI ID of the hardware vendor. - - - The PCI ID of the hardware device. On feature level 9 graphics hardware, GetDesc1 returns zeros for the PCI ID of the hardware device. - - - The PCI ID of the sub system. On feature level 9 graphics hardware, GetDesc1 returns zeros for the PCI ID of the sub system. - - - The PCI ID of the revision number of the adapter. On feature level 9 graphics hardware, GetDesc1 returns zeros for the PCI ID of the revision number of the adapter. - - - The number of bytes of dedicated video memory that are not shared with the CPU. - - - The number of bytes of dedicated system memory that are not shared with the CPU. This memory is allocated from available system memory at boot time. - - - The number of bytes of shared system memory. This is the maximum value of system memory that may be consumed by the adapter during operation. Any incidental memory consumed by the driver as it manages and uses video memory is additional. - - - A unique value that identifies the adapter. See LUID for a definition of the structure. LUID is defined in dxgi.h. - - - A value of the DXGI_ADAPTER_FLAG enumerated type that describes the adapter type. The DXGI_ADAPTER_FLAG_REMOTE flag is reserved. - - - - Gets the number of messages that were discarded due to the message count limit. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the number. - - - - - Gets the number of messages that can pass through a retrieval filter. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the number. - - - - - Clears all messages from the message queue. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that clears the messages. - - - - - Creates a YUV swap chain for an existing DirectComposition surface handle. - Microsoft Docs: - A pointer to the Direct3D device for the swap chain. This parameter cannot be NULL. - Software drivers, like D3D_DRIVER_TYPE_REFERENCE, are not supported for composition swap chains. - A handle to an existing DirectComposition surface. This parameter cannot be NULL. - A pointer to a DXGI_DECODE_SWAP_CHAIN_DESC structure for the swap-chain description. - This parameter cannot be NULL. - A pointer to a IDXGIResource interface that represents the resource that contains the info - that CreateDecodeSwapChainForCompositionSurfaceHandle decodes. - A pointer to the IDXGIOutput interface for the swap chain to restrict content to. If the swap chain - is moved to a different output, the content is black. You can optionally set this parameter to an output target that - uses DXGI_PRESENT_RESTRICT_TO_OUTPUT to restrict - the content on this output. If the swap chain is moved to a different output, the content is black. - - -You must also pass the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag in a - present call to force the content to appear blacked out on any other output. If you want to restrict the content to a different output, you must create a new swap chain. - However, you can conditionally restrict content - based on the DXGI_PRESENT_RESTRICT_TO_OUTPUT flag. - - -Set this parameter to NULL if you don't want to restrict content to an output target. - A pointer to a variable that receives a pointer to the IDXGIDecodeSwapChain interface for the - swap chain that this method creates. - - - - - This swap chain interface allows desktop media applications to request a seamless change to a specific refresh rate. - Microsoft Docs: - - - - - Get a description of the swap chain. - Microsoft Docs: - A pointer to the swap-chain description (see DXGI_SWAP_CHAIN_DESC). - - - - - Specifies color space types. - Microsoft Docs: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range0-255
Gamma2.2
SitingImage
PrimariesBT.709
-  - -This is the standard definition for sRGB. - - Note that this is often implemented with a linear segment, but in that case the exponent is corrected to stay aligned with a gamma 2.2 curve. - - This is usually used with 8 or 10 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range0-255
Gamma1.0
SitingImage
PrimariesBT.709
-  - -This is the standard definition for scRGB, and is usually used with 16 bit integer, 16 bit floating point, or 32 bit floating point color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.2
SitingImage
PrimariesBT.709
-  - -This is the standard definition for ITU-R Recommendation BT.709. Note that due to the inclusion of a linear segment, the transfer curve looks similar to a pure exponential gamma of 1.9. - - This is usually used with 8 or 10 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.2
SitingImage
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - Reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingImage
PrimariesBT.709
Transfer MatrixBT.601
-  - -This definition is commonly used for JPG, and is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.601
-  - -This definition is commonly used for MPEG2, and is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingVideo
PrimariesBT.601
-  - -This is sometimes used for H.264 camera capture, and is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.709
-  - -This definition is commonly used for H.264 and HEVC, and is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingVideo
PrimariesBT.709
-  - -This is sometimes used for H.264 camera capture, and is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.2020
-  - -This definition may be used by HEVC, and is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range0-255
Gamma2084
SitingImage
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2084
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range16-235
Gamma2084
SitingImage
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2084
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range0-255
Gamma2.2
SitingImage
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCBCR
Range16-235
GammaHLG
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCBCR
Range0-255
GammaHLG
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.4
SitingImage
PrimariesBT.709
-  - -This is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.4
SitingImage
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCBCR
Range16-235
Gamma2.4
SitingVideo
PrimariesBT.709
-  - -This is usually used with 8, 10, or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCBCR
Range16-235
Gamma2.4
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
ColorspaceYCBCR
Range16-235
Gamma2.4
SitingVideo
PrimariesBT.2020
-  - -This is usually used with 10 or 12 bit color channels.
-
- - A custom color definition is used. - - - - Sets application-defined data to the object and associates that data with a GUID. - Microsoft Docs: - A GUID that identifies the data. Use this GUID in a call to GetPrivateData to get the data. - The size of the object's data. - A pointer to the object's data. - - - - - Presents a frame on the output adapter. - Microsoft Docs: - An index indicating which member of the subresource array to present. - An integer that specifies how to synchronize presentation of a frame with the vertical blank. - - -For the bit-block transfer (bitblt) model (DXGI_SWAP_EFFECT_DISCARDor DXGI_SWAP_EFFECT_SEQUENTIAL), values are: - -
    -
  • 0 - The presentation occurs immediately, there is no synchronization.
  • -
  • 1,2,3,4 - Synchronize presentation after the nth vertical blank.
  • -
-For the flip model (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), values are: - -
    -
  • 0 - Cancel the remaining time on the previously presented frame and discard this frame if a newer frame is queued. -
  • -
  • n > 0 - Synchronize presentation for at least n vertical blanks.
  • -
- An integer value that contains swap-chain presentation options. These options are defined by the DXGI_PRESENT constants. - -The DXGI_PRESENT_USE_DURATION flag must be set if a custom present duration (custom refresh rate) is being used. -
-
- - - Retrieves a description of a duplicated output. This description specifies the dimensions of the surface that contains the desktop image. - Microsoft Docs: - A pointer to a DXGI_OUTDUPL_DESC structure that describes the duplicated output. This parameter must not be NULL. - - - - - Determines whether the break on a message identifier is turned on or off. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the breaking status. - An integer value that specifies the identifier of the message. - - - - - Describes a swap chain. - Microsoft Docs: - - - - A DXGI_MODE_DESC structure that describes the backbuffer display mode. - - - A DXGI_SAMPLE_DESC structure that describes multi-sampling parameters. - - - A member of the DXGI_USAGE enumerated type that describes the surface usage and CPU access options for the back buffer. The back buffer can - be used for shader input or render-target output. - - - A value that describes the number of buffers in the swap chain. When you call IDXGIFactory::CreateSwapChain to create a full-screen swap chain, you typically include the front buffer in this value. For more information about swap-chain buffers, see Remarks. - - - An HWND handle to the output window. This member must not be NULL. - - - A Boolean value that specifies whether the output is in windowed mode. TRUE if the output is in windowed mode; otherwise, FALSE. - -We recommend that you create a windowed swap chain and allow the end user to change the swap chain to full screen through IDXGISwapChain::SetFullscreenState; that is, do not set this member to FALSE to force the swap chain to be full screen. However, if you create the swap chain as full screen, also provide the end user with a list of supported display modes through the BufferDesc member because a swap chain that is created with an unsupported display mode might cause the display to go black and prevent the end user from seeing anything. - -For more information about choosing windowed verses full screen, see IDXGIFactory::CreateSwapChain. - - - A member of the DXGI_SWAP_EFFECT enumerated type that describes options for handling the contents of the presentation buffer after - presenting a surface. - - - A member of the DXGI_SWAP_CHAIN_FLAG enumerated type that describes options for swap-chain behavior. - - - - Checks for overlay color space support. - Microsoft Docs: - A DXGI_FORMAT-typed value for the color format. - A DXGI_COLOR_SPACE_TYPE-typed value that specifies color space type to check overlay support for. - A pointer to the Direct3D device interface. CheckOverlayColorSpaceSupport returns only support info about this scan-out device. - A pointer to a variable that receives a combination of DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG-typed values that are combined by using a bitwise OR operation. The resulting value specifies options for overlay color space support. - - - - - Copies the display surface (front buffer) to a user-provided resource. - Microsoft Docs: - A pointer to a resource interface that represents the resource to which GetDisplaySurfaceData1 copies the display surface. - - - - - Gets a Microsoft DirectX Graphics Infrastructure (DXGI) 1.6 description of an adapter or video card. This description includes information about ACG compatibility. - Microsoft Docs: - A pointer to a DXGI_ADAPTER_DESC3 structure that describes the adapter. - This parameter must not be NULL. On feature level 9 graphics hardware, early versions of GetDesc3 (GetDesc1, and GetDesc) return zeros for the PCI ID in the VendorId, DeviceId, SubSysId, and Revision members of the adapter description structure and “Software Adapter” for the description string in the Description member. GetDesc3 and GetDesc2 return the actual feature level 9 hardware values in these members. - - - - - Gets the source region used for the swap chain. - Microsoft Docs: - The current width of the source region of the swap chain. This value can range from 1 to the overall width of the swap chain. - The current height of the source region of the swap chain. This value can range from 1 to the overall height of the swap chain. - - - - - Sets the GPU thread priority. - Microsoft Docs: - A value that specifies the required GPU thread priority. This value must be between -7 and 7, inclusive, where 0 represents normal priority. - - - - - The IDXGIAdapter interface represents a display subsystem (including one or more GPUs, DACs and video memory). - Microsoft Docs: - - - - - Gets the color space used by the swap chain. - Microsoft Docs: - - - - - Determines whether the debug output is turned on or off. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the mute status. - - - - - Retrieves an interface that Windows Store apps use for debugging the Microsoft DirectX Graphics Infrastructure (DXGI). - Microsoft Docs: - Not used. - The globally unique identifier (GUID) of the requested interface type, which can be the identifier for the IDXGIDebug, IDXGIDebug1, or IDXGIInfoQueue interfaces. - A pointer to a buffer that receives a pointer to the debugging interface. - - - - - Identifies the granularity at which the graphics processing unit (GPU) can be preempted from performing its current compute task. - Microsoft Docs: - - - - Indicates the preemption granularity as a compute packet. - - - Indicates the preemption granularity as a dispatch (for example, a call to the ID3D11DeviceContext::Dispatch method). A dispatch is a part of a compute packet. - - - Indicates the preemption granularity as a thread group. A thread group is a part of a dispatch. - - - Indicates the preemption granularity as a thread in a thread group. A thread is a part of a thread group. - - - Indicates the preemption granularity as a compute instruction in a thread. - - - - Presents a rendered image to the user. - Microsoft Docs: - An integer that specifies how to synchronize presentation of a frame with the vertical blank. - - -For the bit-block transfer (bitblt) model (DXGI_SWAP_EFFECT_DISCARDor DXGI_SWAP_EFFECT_SEQUENTIAL), values are: - -
    -
  • 0 - The presentation occurs immediately, there is no synchronization.
  • -
  • 1 through 4 - Synchronize presentation after the nth vertical blank.
  • -
-For the flip model (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), values are: - -
    -
  • 0 - Cancel the remaining time on the previously presented frame and discard this frame if a newer frame is queued. -
  • -
  • 1 through 4 - Synchronize presentation for at least n vertical blanks.
  • -
-For an example that shows how sync-interval values affect a flip presentation queue, see Remarks. - -If the update region straddles more than one output (each represented by IDXGIOutput), Present performs the synchronization to the output that contains the largest sub-rectangle of the target window's client area. - An integer value that contains swap-chain presentation options. These options are defined by the DXGI_PRESENT constants. -
-
- - - Gets information about dirty rectangles for the current desktop frame. - Microsoft Docs: - The size in bytes of the buffer that the caller passed to the pDirtyRectsBuffer - parameter. - A pointer to an array of RECT structures - that identifies the dirty rectangle regions for the desktop frame. - Pointer to a variable that receives the number of bytes that - GetFrameDirtyRects - needs to store information about dirty regions in the buffer at - pDirtyRectsBuffer. - -For more information about returning the required buffer size, see Remarks. - - - - - Represents an adapter output (such as a monitor). The IDXGIOutput3 interface exposes a method to check for overlay support. - Microsoft Docs: - - - - - Gets the display modes that match the requested format and other input options. - Microsoft Docs: - The color format (see DXGI_FORMAT). - Options for modes to include (see DXGI_ENUM_MODES). - DXGI_ENUM_MODES_SCALING needs to be specified to expose the display modes that require scaling. Centered modes, requiring no - scaling and corresponding directly to the display output, are enumerated by default. - Set pDesc to NULL so that pNumModes returns the number of display modes that match the format and the options. - Otherwise, pNumModes returns the number of display modes returned in pDesc. - A pointer to a list of display modes (see DXGI_MODE_DESC); set to NULL to get the number of display modes. - - - - - Gets the GPU thread priority. - Microsoft Docs: - A pointer to a variable that receives a value that indicates the current GPU thread priority. The value will be between -7 and 7, inclusive, where 0 represents normal priority. - - - - - Describes the metadata for HDR10, used when video is compressed using High Efficiency Video Coding (HEVC). - Microsoft Docs: - - - - The chromaticity coordinates of the red value in the CIE1931 color space. Index 0 contains the X coordinate and index 1 contains the Y coordinate. The values are normalized to 50,000. - - - The chromaticity coordinates of the green value in the CIE1931 color space. Index 0 contains the X coordinate and index 1 contains the Y coordinate. The values are normalized to 50,000. - - - The chromaticity coordinates of the blue value in the CIE1931 color space. Index 0 contains the X coordinate and index 1 contains the Y coordinate. The values are normalized to 50,000. - - - The chromaticity coordinates of the white point in the CIE1931 color space. Index 0 contains the X coordinate and index 1 contains the Y coordinate. The values are normalized to 50,000. - - - The maximum number of nits of the display used to master the content. Values are in whole nits. - - - The minimum number of nits of the display used to master the content. Values are 1/10000th of a nit (0.0001 nit). - - - The maximum content light level (MaxCLL). This is the nit value corresponding to the brightest pixel used anywhere in the content. - - - The maximum frame average light level (MaxFALL). This is the nit value corresponding to the average luminance of the frame which has the brightest average luminance anywhere in the content. - - - - Enables creating Microsoft DirectX Graphics Infrastructure (DXGI) objects. - Microsoft Docs: - - - - - Creates a subresource surface object. - Microsoft Docs: - The index of the subresource surface object to enumerate. - The address of a pointer to a IDXGISurface2 interface that represents the created subresource surface object at the position specified by the index parameter. - - - - - The IDXGISurface1 interface extends the IDXGISurface by adding support for using Windows Graphics Device Interface (GDI) to render to a Microsoft DirectX Graphics Infrastructure (DXGI) surface. - Microsoft Docs: - - - - - Describes a debug message in the information queue. - Microsoft Docs: - - - - A DXGI_DEBUG_ID value that identifies the entity that produced the message. - - - A DXGI_INFO_QUEUE_MESSAGE_CATEGORY-typed value that specifies the category of the message. - - - A DXGI_INFO_QUEUE_MESSAGE_SEVERITY-typed value that specifies the severity of the message. - - - An integer that uniquely identifies the message. - - - The message string. - - - The length of the message string at pDescription, in bytes. - - - - Describes an adapter (or video card) by using DXGI 1.0. - Microsoft Docs: - - - - A string that contains the adapter description. On feature level 9 graphics hardware, GetDesc returns “Software Adapter” for the description string. - - - The PCI ID of the hardware vendor. On feature level 9 graphics hardware, GetDesc returns zeros for the PCI ID of the hardware vendor. - - - The PCI ID of the hardware device. On feature level 9 graphics hardware, GetDesc returns zeros for the PCI ID of the hardware device. - - - The PCI ID of the sub system. On feature level 9 graphics hardware, GetDesc returns zeros for the PCI ID of the sub system. - - - The PCI ID of the revision number of the adapter. On feature level 9 graphics hardware, GetDesc returns zeros for the PCI ID of the revision number of the adapter. - - - The number of bytes of dedicated video memory that are not shared with the CPU. - - - The number of bytes of dedicated system memory that are not shared with the CPU. This memory is allocated from available system memory at boot time. - - - The number of bytes of shared system memory. This is the maximum value of system memory that may be consumed by the adapter during operation. Any incidental memory consumed by the driver as it manages and uses video memory is additional. - - - A unique value that identifies the adapter. See LUID for a definition of the structure. LUID is defined in dxgi.h. - - - - Represents an adapter output (such as a monitor). The IDXGIOutput4 interface exposes a method to check for overlay color space support. - Microsoft Docs: - - - - - Checks for overlay support. - Microsoft Docs: - A DXGI_FORMAT-typed value for the color format. - A pointer to the Direct3D device interface. CheckOverlaySupport returns only support info about this scan-out device. - A pointer to a variable that receives a combination of DXGI_OVERLAY_SUPPORT_FLAG-typed values that are combined by using a bitwise OR operation. The resulting value specifies options for overlay support. - - - - - Gets the size of the storage-filter stack in bytes. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that gets the size. - - - - - Restores access to resources that were previously offered by calling IDXGIDevice4::OfferResources1. - Microsoft Docs: - The number of resources in the ppResources argument and pResults argument arrays. - An array of pointers to IDXGIResource interfaces for the resources to reclaim. - A pointer to an array that receives DXGI_RECLAIM_RESOURCE_RESULTS values. Each value in the array corresponds to a resource at the same index that the ppResources parameter specifies. The caller can pass in NULL, if the caller intends to fill the resources with new content regardless of whether the old content was discarded. - - - - - Sets the rectangle that defines the target region for the video processing blit operation. - Microsoft Docs: - A pointer to a RECT structure - that contains the target region to set for the swap chain. - - - - - Resource data formats, including fully-typed and typeless formats. A list of modifiers at the bottom of the page more fully describes each format type. - Microsoft Docs: - - - - The format is not known. - - - A four-component, 128-bit typeless format that supports 32 bits per channel including alpha. ¹ - - - A four-component, 128-bit floating-point format that supports 32 bits per channel including alpha. 1,5,8 - - - A four-component, 128-bit unsigned-integer format that supports 32 bits per channel including alpha. ¹ - - - A four-component, 128-bit signed-integer format that supports 32 bits per channel including alpha. ¹ - - - A three-component, 96-bit typeless format that supports 32 bits per color channel. - - - A three-component, 96-bit floating-point format that supports 32 bits per color channel.5,8 - - - A three-component, 96-bit unsigned-integer format that supports 32 bits per color channel. - - - A three-component, 96-bit signed-integer format that supports 32 bits per color channel. - - - A four-component, 64-bit typeless format that supports 16 bits per channel including alpha. - - - A four-component, 64-bit floating-point format that supports 16 bits per channel including alpha.5,7 - - - A four-component, 64-bit unsigned-normalized-integer format that supports 16 bits per channel including alpha. - - - A four-component, 64-bit unsigned-integer format that supports 16 bits per channel including alpha. - - - A four-component, 64-bit signed-normalized-integer format that supports 16 bits per channel including alpha. - - - A four-component, 64-bit signed-integer format that supports 16 bits per channel including alpha. - - - A two-component, 64-bit typeless format that supports 32 bits for the red channel and 32 bits for the green channel. - - - A two-component, 64-bit floating-point format that supports 32 bits for the red channel and 32 bits for the green channel.5,8 - - - A two-component, 64-bit unsigned-integer format that supports 32 bits for the red channel and 32 bits for the green channel. - - - A two-component, 64-bit signed-integer format that supports 32 bits for the red channel and 32 bits for the green channel. - - - A two-component, 64-bit typeless format that supports 32 bits for the red channel, 8 bits for the green channel, and 24 bits are unused. - - - A 32-bit floating-point component, and two unsigned-integer components (with an additional 32 bits). This format supports 32-bit depth, 8-bit stencil, and 24 bits are unused.⁵ - - - A 32-bit floating-point component, and two typeless components (with an additional 32 bits). This format supports 32-bit red channel, 8 bits are unused, and 24 bits are unused.⁵ - - - A 32-bit typeless component, and two unsigned-integer components (with an additional 32 bits). This format has 32 bits unused, 8 bits for green channel, and 24 bits are unused. - - - A four-component, 32-bit typeless format that supports 10 bits for each color and 2 bits for alpha. - - - A four-component, 32-bit unsigned-normalized-integer format that supports 10 bits for each color and 2 bits for alpha. - - - A four-component, 32-bit unsigned-integer format that supports 10 bits for each color and 2 bits for alpha. - - - Three partial-precision floating-point numbers encoded into a single 32-bit value (a variant of s10e5, which is sign bit, 10-bit mantissa, and 5-bit biased (15) exponent). - There are no sign bits, and there is a 5-bit biased (15) exponent for each channel, 6-bit mantissa for R and G, and a 5-bit mantissa for B, as shown in the following illustration.5,7 - -Illustration of the bits in the three partial-precision floating-point numbers - - - A four-component, 32-bit typeless format that supports 8 bits per channel including alpha. - - - A four-component, 32-bit unsigned-normalized-integer format that supports 8 bits per channel including alpha. - - - A four-component, 32-bit unsigned-normalized integer sRGB format that supports 8 bits per channel including alpha. - - - A four-component, 32-bit unsigned-integer format that supports 8 bits per channel including alpha. - - - A four-component, 32-bit signed-normalized-integer format that supports 8 bits per channel including alpha. - - - A four-component, 32-bit signed-integer format that supports 8 bits per channel including alpha. - - - A two-component, 32-bit typeless format that supports 16 bits for the red channel and 16 bits for the green channel. - - - A two-component, 32-bit floating-point format that supports 16 bits for the red channel and 16 bits for the green channel.5,7 - - - A two-component, 32-bit unsigned-normalized-integer format that supports 16 bits each for the green and red channels. - - - A two-component, 32-bit unsigned-integer format that supports 16 bits for the red channel and 16 bits for the green channel. - - - A two-component, 32-bit signed-normalized-integer format that supports 16 bits for the red channel and 16 bits for the green channel. - - - A two-component, 32-bit signed-integer format that supports 16 bits for the red channel and 16 bits for the green channel. - - - A single-component, 32-bit typeless format that supports 32 bits for the red channel. - - - A single-component, 32-bit floating-point format that supports 32 bits for depth.5,8 - - - A single-component, 32-bit floating-point format that supports 32 bits for the red channel.5,8 - - - A single-component, 32-bit unsigned-integer format that supports 32 bits for the red channel. - - - A single-component, 32-bit signed-integer format that supports 32 bits for the red channel. - - - A two-component, 32-bit typeless format that supports 24 bits for the red channel and 8 bits for the green channel. - - - A 32-bit z-buffer format that supports 24 bits for depth and 8 bits for stencil. - - - A 32-bit format, that contains a 24 bit, single-component, unsigned-normalized integer, with an additional typeless 8 bits. This format has 24 bits red channel and 8 bits unused. - - - A 32-bit format, that contains a 24 bit, single-component, typeless format, with an additional 8 bit unsigned integer component. This format has 24 bits unused and 8 bits green channel. - - - A two-component, 16-bit typeless format that supports 8 bits for the red channel and 8 bits for the green channel. - - - A two-component, 16-bit unsigned-normalized-integer format that supports 8 bits for the red channel and 8 bits for the green channel. - - - A two-component, 16-bit unsigned-integer format that supports 8 bits for the red channel and 8 bits for the green channel. - - - A two-component, 16-bit signed-normalized-integer format that supports 8 bits for the red channel and 8 bits for the green channel. - - - A two-component, 16-bit signed-integer format that supports 8 bits for the red channel and 8 bits for the green channel. - - - A single-component, 16-bit typeless format that supports 16 bits for the red channel. - - - A single-component, 16-bit floating-point format that supports 16 bits for the red channel.5,7 - - - A single-component, 16-bit unsigned-normalized-integer format that supports 16 bits for depth. - - - A single-component, 16-bit unsigned-normalized-integer format that supports 16 bits for the red channel. - - - A single-component, 16-bit unsigned-integer format that supports 16 bits for the red channel. - - - A single-component, 16-bit signed-normalized-integer format that supports 16 bits for the red channel. - - - A single-component, 16-bit signed-integer format that supports 16 bits for the red channel. - - - A single-component, 8-bit typeless format that supports 8 bits for the red channel. - - - A single-component, 8-bit unsigned-normalized-integer format that supports 8 bits for the red channel. - - - A single-component, 8-bit unsigned-integer format that supports 8 bits for the red channel. - - - A single-component, 8-bit signed-normalized-integer format that supports 8 bits for the red channel. - - - A single-component, 8-bit signed-integer format that supports 8 bits for the red channel. - - - A single-component, 8-bit unsigned-normalized-integer format for alpha only. - - - A single-component, 1-bit unsigned-normalized integer format that supports 1 bit for the red channel. ². - - - Three partial-precision floating-point numbers encoded into a single 32-bit value all sharing the same 5-bit exponent (variant of s10e5, which is sign bit, 10-bit mantissa, and 5-bit biased (15) exponent). - There is no sign bit, and there is a shared 5-bit biased (15) exponent and a 9-bit mantissa for each channel, as shown in the following illustration. 6,7. - -Illustration of the bits in the three partial-precision floating-point numbers - - - A four-component, 32-bit unsigned-normalized-integer format. This packed RGB format is analogous to the UYVY format. Each 32-bit block describes a pair of pixels: (R8, G8, B8) and (R8, G8, B8) where the R8/B8 values are repeated, and the G8 values are unique to each pixel. ³ - -Width must be even. - - - A four-component, 32-bit unsigned-normalized-integer format. This packed RGB format is analogous to the YUY2 format. Each 32-bit block describes a pair of pixels: (R8, G8, B8) and (R8, G8, B8) where the R8/B8 values are repeated, and the G8 values are unique to each pixel. ³ - -Width must be even. - - - Four-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component block-compression format for sRGB data. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component block-compression format for sRGB data. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Four-component block-compression format for sRGB data. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - One-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - One-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - One-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Two-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Two-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Two-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - A three-component, 16-bit unsigned-normalized-integer format that supports 5 bits for blue, 6 bits for green, and 5 bits for red. - -Direct3D 10 through Direct3D 11:  This value is defined for DXGI. However, Direct3D 10, 10.1, or 11 devices do not support this format. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - A four-component, 16-bit unsigned-normalized-integer format that supports 5 bits for each color channel and 1-bit alpha. - -Direct3D 10 through Direct3D 11:  This value is defined for DXGI. However, Direct3D 10, 10.1, or 11 devices do not support this format. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - A four-component, 32-bit unsigned-normalized-integer format that supports 8 bits for each color channel and 8-bit alpha. - - - A four-component, 32-bit unsigned-normalized-integer format that supports 8 bits for each color channel and 8 bits unused. - - - A four-component, 32-bit 2.8-biased fixed-point format that supports 10 bits for each color channel and 2-bit alpha. - - - A four-component, 32-bit typeless format that supports 8 bits for each channel including alpha. ⁴ - - - A four-component, 32-bit unsigned-normalized standard RGB format that supports 8 bits for each channel including alpha. ⁴ - - - A four-component, 32-bit typeless format that supports 8 bits for each color channel, and 8 bits are unused. ⁴ - - - A four-component, 32-bit unsigned-normalized standard RGB format that supports 8 bits for each color channel, and 8 bits are unused. ⁴ - - - A typeless block-compression format. ⁴ For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - A block-compression format. ⁴ For information about block-compression formats, see Texture Block Compression in Direct3D 11.⁵ - - - A block-compression format. ⁴ For information about block-compression formats, see Texture Block Compression in Direct3D 11.⁵ - - - A typeless block-compression format. ⁴ For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - A block-compression format. ⁴ For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - A block-compression format. ⁴ For information about block-compression formats, see Texture Block Compression in Direct3D 11. - - - Most common YUV 4:4:4 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. For UAVs, an additional valid view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. Supported view types are SRV, RTV, and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is V->R8, -U->G8, -Y->B8, -and A->A8. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 10-bit per channel packed YUV 4:4:4 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R10G10B10A2_UNORM and DXGI_FORMAT_R10G10B10A2_UINT. For UAVs, an additional valid view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R10G10B10A2_UNORM and DXGI_FORMAT_R10G10B10A2_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is U->R10, -Y->G10, -V->B10, -and A->A2. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 16-bit per channel packed YUV 4:4:4 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R16G16B16A16_UNORM and DXGI_FORMAT_R16G16B16A16_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is U->R16, -Y->G16, -V->B16, -and A->A16. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - Most common YUV 4:2:0 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R8_UNORM and DXGI_FORMAT_R8_UINT. Valid chrominance data view formats (width and height are each 1/2 of luminance view) for this video resource format are DXGI_FORMAT_R8G8_UNORM and DXGI_FORMAT_R8G8_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R8. For chrominance data view, the mapping to the view channel is U->R8 and -V->G8. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width and height must be even. Direct3D 11 staging resources and initData parameters for this format use (rowPitch * (height + (height / 2))) bytes. The first (SysMemPitch * height) bytes are the Y plane, the remaining (SysMemPitch * (height / 2)) bytes are the UV plane. - -An app using the YUY 4:2:0 formats must map the luma (Y) plane separately from the chroma (UV) planes. Developers do this by calling ID3D12Device::CreateShaderResourceView twice for the same texture and passing in 1-channel and 2-channel formats. Passing in a 1-channel format compatible with the Y plane maps only the Y plane. Passing in a 2-channel format compatible with the UV planes (together) maps only the U and V planes as a single resource view. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 10-bit per channel planar YUV 4:2:0 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R16_UNORM and DXGI_FORMAT_R16_UINT. The runtime does not enforce whether the lowest 6 bits are 0 (given that this video resource format is a 10-bit format that uses 16 bits). If required, application shader code would have to enforce this manually. From the runtime's point of view, DXGI_FORMAT_P010 is no different than DXGI_FORMAT_P016. Valid chrominance data view formats (width and height are each 1/2 of luminance view) for this video resource format are DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. For UAVs, an additional valid chrominance data view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R16. For chrominance data view, the mapping to the view channel is U->R16 and -V->G16. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width and height must be even. Direct3D 11 staging resources and initData parameters for this format use (rowPitch * (height + (height / 2))) bytes. The first (SysMemPitch * height) bytes are the Y plane, the remaining (SysMemPitch * (height / 2)) bytes are the UV plane. - -An app using the YUY 4:2:0 formats must map the luma (Y) plane separately from the chroma (UV) planes. Developers do this by calling ID3D12Device::CreateShaderResourceView twice for the same texture and passing in 1-channel and 2-channel formats. Passing in a 1-channel format compatible with the Y plane maps only the Y plane. Passing in a 2-channel format compatible with the UV planes (together) maps only the U and V planes as a single resource view. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 16-bit per channel planar YUV 4:2:0 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R16_UNORM and DXGI_FORMAT_R16_UINT. Valid chrominance data view formats (width and height are each 1/2 of luminance view) for this video resource format are DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. For UAVs, an additional valid chrominance data view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R16. For chrominance data view, the mapping to the view channel is U->R16 and -V->G16. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width and height must be even. Direct3D 11 staging resources and initData parameters for this format use (rowPitch * (height + (height / 2))) bytes. The first (SysMemPitch * height) bytes are the Y plane, the remaining (SysMemPitch * (height / 2)) bytes are the UV plane. - -An app using the YUY 4:2:0 formats must map the luma (Y) plane separately from the chroma (UV) planes. Developers do this by calling ID3D12Device::CreateShaderResourceView twice for the same texture and passing in 1-channel and 2-channel formats. Passing in a 1-channel format compatible with the Y plane maps only the Y plane. Passing in a 2-channel format compatible with the UV planes (together) maps only the U and V planes as a single resource view. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 8-bit per channel planar YUV 4:2:0 video resource format. This format is subsampled where each pixel has its own Y value, but each 2x2 pixel block shares a single U and V value. The runtime requires that the width and height of all resources that are created with this format are multiples of 2. The runtime also requires that the left, right, top, and bottom members of any RECT that are used for this format are multiples of 2. This format differs from DXGI_FORMAT_NV12 in that the layout of the data within the resource is completely opaque to applications. Applications cannot use the CPU to map the resource and then access the data within the resource. You cannot use shaders with this format. Because of this behavior, legacy hardware that supports a non-NV12 4:2:0 layout (for example, YV12, and so on) can be used. Also, new hardware that has a 4:2:0 implementation better than NV12 can be used when the application does not need the data to be in a standard layout. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width and height must be even. Direct3D 11 staging resources and initData parameters for this format use (rowPitch * (height + (height / 2))) bytes. - -An app using the YUY 4:2:0 formats must map the luma (Y) plane separately from the chroma (UV) planes. Developers do this by calling ID3D12Device::CreateShaderResourceView twice for the same texture and passing in 1-channel and 2-channel formats. Passing in a 1-channel format compatible with the Y plane maps only the Y plane. Passing in a 2-channel format compatible with the UV planes (together) maps only the U and V planes as a single resource view. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - Most common YUV 4:2:2 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. For UAVs, an additional valid view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is Y0->R8, -U0->G8, -Y1->B8, -and V0->A8. - -A unique valid view format for this video resource format is DXGI_FORMAT_R8G8_B8G8_UNORM. With this view format, the width of the view appears to be twice what the DXGI_FORMAT_R8G8B8A8_UNORM or DXGI_FORMAT_R8G8B8A8_UINT view would be when hardware reconstructs RGBA automatically on read and before filtering. This Direct3D hardware behavior is legacy and is likely not useful any more. With this view format, the mapping to the view channel is Y0->R8, -U0-> -G8[0], -Y1->B8, -and V0-> -G8[1]. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width must be even. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 10-bit per channel packed YUV 4:2:2 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R16G16B16A16_UNORM and DXGI_FORMAT_R16G16B16A16_UINT. The runtime does not enforce whether the lowest 6 bits are 0 (given that this video resource format is a 10-bit format that uses 16 bits). If required, application shader code would have to enforce this manually. From the runtime's point of view, DXGI_FORMAT_Y210 is no different than DXGI_FORMAT_Y216. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is Y0->R16, -U->G16, -Y1->B16, -and V->A16. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width must be even. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 16-bit per channel packed YUV 4:2:2 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R16G16B16A16_UNORM and DXGI_FORMAT_R16G16B16A16_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is Y0->R16, -U->G16, -Y1->B16, -and V->A16. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width must be even. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - Most common planar YUV 4:1:1 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R8_UNORM and DXGI_FORMAT_R8_UINT. Valid chrominance data view formats (width and height are each 1/4 of luminance view) for this video resource format are DXGI_FORMAT_R8G8_UNORM and DXGI_FORMAT_R8G8_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R8. For chrominance data view, the mapping to the view channel is U->R8 and -V->G8. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Width must be a multiple of 4. Direct3D11 staging resources and initData parameters for this format use (rowPitch * height * 2) bytes. The first (SysMemPitch * height) bytes are the Y plane, the next ((SysMemPitch / 2) * height) bytes are the UV plane, and the remainder is padding. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 4-bit palletized YUV format that is commonly used for DVD subpicture. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 4-bit palletized YUV format that is commonly used for DVD subpicture. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 8-bit palletized format that is used for palletized RGB data when the processor processes ISDB-T data and for palletized YUV data when the processor processes BluRay data. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - 8-bit palletized format with 8 bits of alpha that is used for palletized YUV data when the processor processes BluRay data. - -For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - A four-component, 16-bit unsigned-normalized integer format that supports 4 bits for each channel including alpha. - -Direct3D 11.1:  This value is not supported until Windows 8. - - - A video format; an 8-bit version of a hybrid planar 4:2:2 format. - - - An 8 bit YCbCrA 4:4 rendering format. - - - An 8 bit YCbCrA 4:4:4:4 rendering format. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a - size other than 32 bits. This value is not used. - - - - Sets the transform matrix that will be applied to a composition swap chain upon the next present. - Microsoft Docs: - The transform matrix to use for swap chain scaling and translation. This function can only be used with composition swap chains created by IDXGIFactory2::CreateSwapChainForComposition. Only scale and translation components are allowed in the matrix. - - - - - Gets the size of the destination surface to use for the video processing blit operation. - Microsoft Docs: - A pointer to a variable that receives the width in pixels. - A pointer to a variable that receives the height in pixels. - - - - - Specifies the header metadata type. - Microsoft Docs: - - - - Indicates there is no header metadata. - - - Indicates the header metadata is held by a DXGI_HDR_METADATA_HDR10 structure. - - - - Sets a message severity level to break on when a message with that severity level passes through the storage filter. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that sets the breaking condition. - A DXGI_INFO_QUEUE_MESSAGE_SEVERITY-typed value that specifies the severity of the message. - A Boolean value that specifies whether SetBreakOnSeverity turns on or off this breaking condition (TRUE for on, FALSE for off). - - - - - Indicates that the application is ready to process the next desktop image. - Microsoft Docs: - The time-out interval, in milliseconds. This interval specifies the amount of time that this method waits for a new frame before it returns to the caller. This method returns if the interval elapses, and a new desktop image is not available. - -For more information about the time-out interval, see Remarks. - A pointer to a memory location that receives the DXGI_OUTDUPL_FRAME_INFO structure that describes timing and presentation statistics for a frame. - A pointer to a variable that receives the IDXGIResource interface of the surface that contains the desktop bitmap. - - - - - Changes the display mode. - Microsoft Docs: - A pointer to a surface (see IDXGISurface) used for rendering an image to the screen. The surface must have been created as a back buffer (DXGI_USAGE_BACKBUFFER). - - - - - Represents a keyed mutex, which allows exclusive access to a shared resource that is used by multiple devices. - Microsoft Docs: - - - - - Describes information about present that helps the operating system optimize presentation. - Microsoft Docs: - - - - The number of updated rectangles that you update in the back buffer for the presented frame. The operating system uses this information to optimize presentation. You can set this member to 0 to indicate that you update the whole frame. - - - A list of updated rectangles that you update in the back buffer for the presented frame. An application must update every single pixel in each rectangle that it reports to the runtime; the application cannot assume that the pixels are saved from the previous frame. For more information about updating dirty rectangles, see Remarks. You can set this member to NULL if DirtyRectsCount is 0. An application must not update any pixel outside of the dirty rectangles. - - - A pointer to the scrolled rectangle. The scrolled rectangle is the rectangle of the previous frame from which the runtime bit-block transfers (bitblts) content. The runtime also uses the scrolled rectangle to optimize presentation in terminal server and indirect display scenarios. - -The scrolled rectangle also describes the destination rectangle, that is, the region on the current frame that is filled with scrolled content. You can set this member to NULL to indicate that no content is scrolled from the previous frame. - - - A pointer to the offset of the scrolled area that goes from the source rectangle (of previous frame) to the destination rectangle (of current frame). You can set this member to NULL to indicate no offset. - - - - Gets a Microsoft DirectX Graphics Infrastructure (DXGI) 1.2 description of an adapter or video card. - Microsoft Docs: - A pointer to a DXGI_ADAPTER_DESC2 structure that describes the adapter. - This parameter must not be NULL. On feature level 9 graphics hardware, earlier versions of GetDesc2 (GetDesc and GetDesc1) return zeros for the PCI ID in the VendorId, DeviceId, SubSysId, and Revision members of the adapter description structure and “Software Adapter” for the description string in the Description member. GetDesc2 returns the actual feature level 9 hardware values in these members. - - - - - Gets the parent of the object. - Microsoft Docs: - The ID of the requested interface. - The address of a pointer to the parent object. - - - - - An IDXGIDevice1 interface implements a derived class for DXGI objects that produce image data. - Microsoft Docs: - - - - - Get a description of the surface. - Microsoft Docs: - A pointer to the surface description (see DXGI_SURFACE_DESC). - - - - - Describes an adapter (or video card) that uses Microsoft DirectX Graphics Infrastructure (DXGI) 1.6. - Microsoft Docs: - - - - A string that contains the adapter description. - - - The PCI ID of the hardware vendor. - - - The PCI ID of the hardware device. - - - The PCI ID of the sub system. - - - The PCI ID of the revision number of the adapter. - - - The number of bytes of dedicated video memory that are not shared with the CPU. - - - The number of bytes of dedicated system memory that are not shared with the CPU. This memory is allocated from available system memory at boot time. - - - The number of bytes of shared system memory. This is the maximum value of system memory that may be consumed by the adapter during operation. Any incidental memory consumed by the driver as it manages and uses video memory is additional. - - - A unique value that identifies the adapter. See LUID for a definition of the structure. LUID is defined in dxgi.h. - - - A value of the DXGI_ADAPTER_FLAG3 enumeration that describes the adapter type. The DXGI_ADAPTER_FLAG_REMOTE flag is reserved. - - - A value of the DXGI_GRAPHICS_PREEMPTION_GRANULARITY enumerated type that describes the granularity level at which the GPU can be preempted from performing its current graphics rendering task. - - - A value of the DXGI_COMPUTE_PREEMPTION_GRANULARITY enumerated type that describes the granularity level at which the GPU can be preempted from performing its current compute task. - - - - Flags used with ReportLiveObjects to specify the amount of info to report about an object's lifetime. - Microsoft Docs: - - - - A flag that specifies to obtain a summary about an object's lifetime. - - - A flag that specifies to obtain detailed info about an object's lifetime. - - - This flag indicates to ignore objects which have no external refcounts keeping them alive. - D3D objects are printed using an external refcount and an internal refcount. - Typically, all objects are printed. - This flag means ignore the objects whose external refcount is 0, because the application is not responsible for keeping them alive. - - - A flag that specifies to obtain both a summary and detailed info about an object's lifetime. - - - - The alpha channel should be ignored and the bitmap should be rendered opaquely. - Microsoft Docs: - - - - - Registers an application window to receive notification messages of changes of stereo status. - Microsoft Docs: - The handle of the window to send a notification message to when stereo status change occurs. - Identifies the notification message to send. - A pointer to a key value that an application can pass to the IDXGIFactory2::UnregisterStereoStatus method to unregister the notification message that wMsg specifies. - - - - - Gets the number of frames that the system is allowed to queue for rendering. - Microsoft Docs: - This value is set to the number of frames that can be queued for render. - This value defaults to 3, but can range from 1 to 16. - - - - - Registers to receive notification of changes whenever the adapter enumeration state changes. - Microsoft Docs: - A handle to the event object. - A key value for the registered event. - - - - - Gets a DXGI 1.1 description of an adapter (or video card). - Microsoft Docs: - A pointer to a DXGI_ADAPTER_DESC1 structure that describes the adapter. - This parameter must not be NULL. On feature level 9 graphics hardware, GetDesc1 returns zeros for the PCI ID in the VendorId, DeviceId, SubSysId, and Revision members of DXGI_ADAPTER_DESC1 and “Software Adapter” for the description string in the Description member. - - - - - Pushes an empty retrieval filter onto the retrieval-filter stack. - Microsoft Docs: - A DXGI_DEBUG_ID value that identifies the entity that pushes the empty retrieval filter. - - - - - Registers to receive notification of changes in stereo status by using event signaling. - Microsoft Docs: - A handle to the event object that the operating system sets when notification of stereo status change occurs. The CreateEvent or OpenEvent function returns this handle. - A pointer to a key value that an application can pass to the IDXGIFactory2::UnregisterStereoStatus method to unregister the notification event that hEvent specifies. - - - - - Using a key, acquires exclusive rendering access to a shared resource. - Microsoft Docs: - A value that indicates which device to give access to. This method will succeed when the device that currently owns the surface calls - the IDXGIKeyedMutex::ReleaseSync method using the same value. This value can be any UINT64 value. - The time-out interval, in milliseconds. This method will return if the interval elapses, and the keyed mutex has not been released using the specified Key. - If this value is set to zero, the AcquireSync method will test to see if the keyed mutex has been released and returns immediately. - If this value is set to INFINITE, the time-out interval will never elapse. - - - - - This interface enables a single method to support variable refresh rate displays. - Microsoft Docs: - - -
\ No newline at end of file diff --git a/src/Vortice.Win32/Generated/Graphics/Imaging.D2D/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Imaging.D2D/Apis.cs new file mode 100644 index 0000000..866c9bb --- /dev/null +++ b/src/Vortice.Win32/Generated/Graphics/Imaging.D2D/Apis.cs @@ -0,0 +1,15 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace Win32.Graphics.Imaging.D2D; + +public static partial class Apis +{ +} + diff --git a/src/Vortice.Win32/Generated/Graphics/Imaging/IWICImageEncoder.cs b/src/Vortice.Win32/Generated/Graphics/Imaging.D2D/IWICImageEncoder.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Imaging/IWICImageEncoder.cs rename to src/Vortice.Win32/Generated/Graphics/Imaging.D2D/IWICImageEncoder.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Imaging/IWICImagingFactory2.cs b/src/Vortice.Win32/Generated/Graphics/Imaging.D2D/IWICImagingFactory2.cs similarity index 100% rename from src/Vortice.Win32/Generated/Graphics/Imaging/IWICImagingFactory2.cs rename to src/Vortice.Win32/Generated/Graphics/Imaging.D2D/IWICImagingFactory2.cs diff --git a/src/Vortice.Win32/Generated/Graphics/Imaging/Apis.cs b/src/Vortice.Win32/Generated/Graphics/Imaging/Apis.cs index cc297cf..52c0f78 100644 --- a/src/Vortice.Win32/Generated/Graphics/Imaging/Apis.cs +++ b/src/Vortice.Win32/Generated/Graphics/Imaging/Apis.cs @@ -11,6436 +11,6436 @@ namespace Win32.Graphics.Imaging; public static partial class Apis { - public const uint WINCODEC_SDK_VERSION1 = 566; - - public const uint WINCODEC_SDK_VERSION2 = 567; - - public static ref readonly Guid CLSID_WICImagingFactory - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x62, 0xF2, 0xCA, 0xCA, - 0x70, 0x93, - 0x15, 0x46, - 0xA1, - 0x3B, - 0x9F, - 0x55, - 0x39, - 0xDA, - 0x4C, - 0x0A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICImagingFactory1 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x62, 0xF2, 0xCA, 0xCA, - 0x70, 0x93, - 0x15, 0x46, - 0xA1, - 0x3B, - 0x9F, - 0x55, - 0x39, - 0xDA, - 0x4C, - 0x0A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICImagingFactory2 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE8, 0x06, 0x7D, 0x31, - 0x24, 0x5F, - 0x3D, 0x43, - 0xBD, - 0xF7, - 0x79, - 0xCE, - 0x68, - 0xD8, - 0xAB, - 0xC2 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public const uint WINCODEC_SDK_VERSION = 567; - - public static ref readonly Guid GUID_VendorMicrosoft - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xCA, 0x49, 0xE7, 0xF0, - 0xEF, 0xED, - 0x89, 0x45, - 0xA7, - 0x3A, - 0xEE, - 0x0E, - 0x62, - 0x6A, - 0x2A, - 0x2B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_VendorMicrosoftBuiltIn - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xFD, 0x30, 0x7A, 0x25, - 0xB6, 0x06, - 0x2B, 0x46, - 0xAE, - 0xA4, - 0x63, - 0xF7, - 0x0B, - 0x86, - 0xE5, - 0x33 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x7B, 0xA1, 0x9E, 0x38, - 0x78, 0x50, - 0xDE, 0x4C, - 0xB6, - 0xEF, - 0x25, - 0xC1, - 0x51, - 0x75, - 0xC7, - 0x51 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngDecoder1 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x7B, 0xA1, 0x9E, 0x38, - 0x78, 0x50, - 0xDE, 0x4C, - 0xB6, - 0xEF, - 0x25, - 0xC1, - 0x51, - 0x75, - 0xC7, - 0x51 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngDecoder2 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5B, 0x94, 0x18, 0xE0, - 0x86, 0xAA, - 0x08, 0x40, - 0x9B, - 0xD4, - 0x67, - 0x77, - 0xA1, - 0xE4, - 0x0C, - 0x11 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICBmpDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x62, 0x20, 0x46, 0x6B, - 0xBF, 0x7C, - 0x0D, 0x40, - 0x9F, - 0xDB, - 0x81, - 0x3D, - 0xD1, - 0x0F, - 0x27, - 0x78 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIcoDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xDF, 0xFC, 0x1B, 0xC6, - 0x0F, 0x2E, - 0xAD, 0x4A, - 0xA8, - 0xD7, - 0xE0, - 0x6B, - 0xAF, - 0xEB, - 0xCD, - 0xFE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x80, 0xA4, 0x56, 0x94, - 0x8B, 0xE8, - 0xEA, 0x43, - 0x9E, - 0x73, - 0x0B, - 0x2D, - 0x9B, - 0x71, - 0xB1, - 0xCA - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGifDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3C, 0xDA, 0x1D, 0x38, - 0xE9, 0x9C, - 0x34, 0x48, - 0xA2, - 0x3E, - 0x1F, - 0x98, - 0xF8, - 0xFC, - 0x52, - 0xBE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICTiffDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xD9, 0x85, 0x4E, 0xB5, - 0x23, 0xFE, - 0x9F, 0x49, - 0x8B, - 0x88, - 0x6A, - 0xCE, - 0xA7, - 0x13, - 0x75, - 0x2B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICWmpDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x36, 0xEC, 0x6C, 0xA2, - 0x4C, 0x23, - 0x50, 0x49, - 0xAE, - 0x16, - 0xE3, - 0x4A, - 0xAC, - 0xE7, - 0x1D, - 0x0D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICDdsDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x9F, 0x69, 0x53, 0x90, - 0x41, 0xA3, - 0x9D, 0x42, - 0x9E, - 0x90, - 0xEE, - 0x43, - 0x7C, - 0xF8, - 0x0C, - 0x73 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICBmpEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xB4, 0x8B, 0xBE, 0x69, - 0x6D, 0xD6, - 0xC8, 0x47, - 0x86, - 0x5A, - 0xED, - 0x15, - 0x89, - 0x43, - 0x37, - 0x82 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x69, 0x99, 0x94, 0x27, - 0x6A, 0x87, - 0xD7, 0x41, - 0x94, - 0x47, - 0x56, - 0x8F, - 0x6A, - 0x35, - 0xA4, - 0xDC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC1, 0xF5, 0x34, 0x1A, - 0x5A, 0x4A, - 0xDC, 0x46, - 0xB6, - 0x44, - 0x1F, - 0x45, - 0x67, - 0xE7, - 0xA6, - 0x76 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGifEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x98, 0x55, 0x4F, 0x11, - 0x22, 0x0B, - 0xA0, 0x40, - 0x86, - 0xA1, - 0xC8, - 0x3E, - 0xA4, - 0x95, - 0xAD, - 0xBD - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICTiffEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x10, 0xBE, 0x31, 0x01, - 0x01, 0x20, - 0x5F, 0x4C, - 0xA9, - 0xB0, - 0xCC, - 0x88, - 0xFA, - 0xB6, - 0x4C, - 0xE8 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICWmpEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xCB, 0xE3, 0x4C, 0xAC, - 0xC1, 0xE1, - 0xCD, 0x44, - 0x82, - 0x15, - 0x5A, - 0x16, - 0x65, - 0x50, - 0x9E, - 0xC2 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICDdsEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x94, 0xDE, 0x1D, 0xA6, - 0xCE, 0x66, - 0xC1, 0x4A, - 0x88, - 0x1B, - 0x71, - 0x68, - 0x05, - 0x88, - 0x89, - 0x5E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICAdngDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x11, 0x94, 0x1D, 0x98, - 0x9E, 0x90, - 0xA7, 0x42, - 0x8F, - 0x5D, - 0xA7, - 0x47, - 0xFF, - 0x05, - 0x2E, - 0xDB - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegQualcommPhoneEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x62, 0x5C, 0xED, 0x68, - 0x34, 0xF5, - 0x79, 0x49, - 0xB2, - 0xB3, - 0x68, - 0x6A, - 0x12, - 0xB2, - 0xB3, - 0x4C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICHeifDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0A, 0xA8, 0xA4, 0xE9, - 0xFE, 0x44, - 0xE4, 0x4D, - 0x89, - 0x71, - 0x71, - 0x50, - 0xB1, - 0x0A, - 0x51, - 0x99 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICHeifEncoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC1, 0xCE, 0xBE, 0x0D, - 0xB3, 0x9E, - 0x60, 0x48, - 0x9C, - 0x6F, - 0xDD, - 0xBE, - 0x86, - 0x63, - 0x45, - 0x75 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICWebpDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x86, 0xE8, 0x93, 0x76, - 0xC9, 0x51, - 0x70, 0x40, - 0x84, - 0x19, - 0x9F, - 0x70, - 0x73, - 0x8E, - 0xC8, - 0xFA - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICRAWDecoder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x02, 0x57, 0x94, 0x41, - 0x02, 0x83, - 0xA6, 0x44, - 0x94, - 0x45, - 0xAC, - 0x98, - 0xE8, - 0xAF, - 0xA0, - 0x86 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatBmp - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x7E, 0xD8, 0xF1, 0x0A, - 0xFE, 0xFC, - 0x88, 0x41, - 0xBD, - 0xEB, - 0xA7, - 0x90, - 0x64, - 0x71, - 0xCB, - 0xE3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatPng - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xF4, 0xFA, 0x7C, 0x1B, - 0x3F, 0x71, - 0x3C, 0x47, - 0xBB, - 0xCD, - 0x61, - 0x37, - 0x42, - 0x5F, - 0xAE, - 0xAF - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatIco - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC4, 0x60, 0xA8, 0xA3, - 0x8F, 0x33, - 0x17, 0x4C, - 0x91, - 0x9A, - 0xFB, - 0xA4, - 0xB5, - 0x62, - 0x8F, - 0x21 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatJpeg - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xAA, 0xA5, 0xE4, 0x19, - 0x62, 0x56, - 0xC5, 0x4F, - 0xA0, - 0xC0, - 0x17, - 0x58, - 0x02, - 0x8E, - 0x10, - 0x57 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatTiff - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x30, 0xCC, 0x3B, 0x16, - 0xE9, 0xE2, - 0x0B, 0x4F, - 0x96, - 0x1D, - 0xA3, - 0xE9, - 0xFD, - 0xB7, - 0x88, - 0xA3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatGif - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x01, 0x56, 0x8A, 0x1F, - 0x4D, 0x7D, - 0xBD, 0x4C, - 0x9C, - 0x82, - 0x1B, - 0xC8, - 0xD4, - 0xEE, - 0xB9, - 0xA5 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatWmp - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xAA, 0x7C, 0xA3, 0x57, - 0x7A, 0x36, - 0x40, 0x45, - 0x91, - 0x6B, - 0xF1, - 0x83, - 0xC5, - 0x09, - 0x3A, - 0x4B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatDds - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x95, 0xCB, 0x67, 0x99, - 0x85, 0x2E, - 0xC8, 0x4A, - 0x8C, - 0xA2, - 0x83, - 0xD7, - 0xCC, - 0xD4, - 0x25, - 0xC9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatAdng - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0D, 0x6D, 0xFF, 0xF3, - 0xC0, 0x38, - 0xC4, 0x41, - 0xB1, - 0xFE, - 0x1F, - 0x38, - 0x24, - 0xF1, - 0x7B, - 0x84 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatHeif - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x21, 0x25, 0xE6, 0xE1, - 0x87, 0x67, - 0x5B, 0x40, - 0xA3, - 0x39, - 0x50, - 0x07, - 0x15, - 0xB5, - 0x76, - 0x3F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatWebp - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE2, 0xB0, 0x94, 0xE0, - 0xF2, 0x67, - 0xB3, 0x45, - 0xB0, - 0xEA, - 0x11, - 0x53, - 0x37, - 0xCA, - 0x7C, - 0xF3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_ContainerFormatRaw - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x60, 0xCE, 0x99, 0xFE, - 0x9C, 0xF1, - 0x3C, 0x43, - 0xA3, - 0xAE, - 0x00, - 0xAC, - 0xEF, - 0xA9, - 0xCA, - 0x21 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICImagingCategories - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x80, 0xD3, 0xE3, 0xFA, - 0xA4, 0xFE, - 0x23, 0x46, - 0x8C, - 0x75, - 0xC6, - 0xB6, - 0x11, - 0x10, - 0xB6, - 0x81 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CATID_WICBitmapDecoders - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x37, 0x68, 0xD9, 0x7E, - 0xF0, 0x96, - 0x12, 0x48, - 0xB2, - 0x11, - 0xF1, - 0x3C, - 0x24, - 0x11, - 0x7E, - 0xD3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CATID_WICBitmapEncoders - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x96, 0x72, 0x75, 0xAC, - 0x22, 0x35, - 0x11, 0x4E, - 0x98, - 0x62, - 0xC1, - 0x7B, - 0xE5, - 0xA1, - 0x76, - 0x7E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CATID_WICPixelFormats - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0F, 0xE7, 0x46, 0x2B, - 0xA7, 0xCD, - 0x3E, 0x47, - 0x89, - 0xF6, - 0xDC, - 0x96, - 0x30, - 0xA2, - 0x39, - 0x0B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CATID_WICFormatConverters - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE8, 0xEA, 0x35, 0x78, - 0x14, 0xBF, - 0xD1, 0x49, - 0x93, - 0xCE, - 0x53, - 0x3A, - 0x40, - 0x7B, - 0x22, - 0x48 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CATID_WICMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xD8, 0x94, 0xAF, 0x05, - 0x74, 0x71, - 0xD2, 0x4C, - 0xBE, - 0x4A, - 0x41, - 0x24, - 0xB8, - 0x0E, - 0xE4, - 0xB8 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CATID_WICMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xA4, 0xB9, 0xE3, 0xAB, - 0x7D, 0x25, - 0x97, 0x4B, - 0xBD, - 0x1A, - 0x29, - 0x4A, - 0xF4, - 0x96, - 0x22, - 0x2E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICDefaultFormatConverter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xDC, 0x11, 0x3F, 0x1A, - 0x14, 0xB5, - 0x17, 0x4B, - 0x8C, - 0x5F, - 0x21, - 0x54, - 0x51, - 0x38, - 0x52, - 0xF1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICFormatConverterHighColor - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x54, 0xD4, 0x75, 0xAC, - 0x37, 0x9F, - 0xF8, 0x48, - 0xB9, - 0x72, - 0x4E, - 0x19, - 0xBC, - 0x85, - 0x60, - 0x11 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICFormatConverterNChannel - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xB2, 0xAB, 0x7C, 0xC1, - 0xA3, 0xD4, - 0xD7, 0x47, - 0xA5, - 0x57, - 0x33, - 0x9B, - 0x2E, - 0xFB, - 0xD4, - 0xF1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICFormatConverterWMPhoto - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x2B, 0x17, 0xB5, 0x9C, - 0x00, 0xD6, - 0xBA, 0x46, - 0xAB, - 0x77, - 0x77, - 0xBB, - 0x7E, - 0x3A, - 0x00, - 0xD9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPlanarFormatConverter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xB8, 0x32, 0x41, 0x18, - 0xF8, 0x32, - 0x84, 0x47, - 0x91, - 0x31, - 0xDD, - 0x72, - 0x24, - 0xB2, - 0x34, - 0x38 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public const uint WIC_JPEG_MAX_COMPONENT_COUNT = 4; - - public const uint WIC_JPEG_MAX_TABLE_INDEX = 3; - - public const uint WIC_JPEG_SAMPLE_FACTORS_ONE = 17; - - public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_420 = 1118498; - - public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_422 = 1118497; - - public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_440 = 1118482; - - public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_444 = 1118481; - - public const uint WIC_JPEG_QUANTIZATION_BASELINE_ONE = 0; - - public const uint WIC_JPEG_QUANTIZATION_BASELINE_THREE = 65792; - - public const uint WIC_JPEG_HUFFMAN_BASELINE_ONE = 0; - - public const uint WIC_JPEG_HUFFMAN_BASELINE_THREE = 1118464; - - public static ref readonly Guid GUID_WICPixelFormatDontCare - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x00 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat1bppIndexed - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x01 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat2bppIndexed - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x02 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat4bppIndexed - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x03 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat8bppIndexed - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x04 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormatBlackWhite - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x05 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat2bppGray - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x06 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat4bppGray - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x07 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat8bppGray - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x08 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat8bppAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x16, 0x01, 0xCD, 0xE6, - 0xBA, 0xEE, - 0x61, 0x41, - 0xAA, - 0x85, - 0x27, - 0xDD, - 0x9F, - 0xB3, - 0xA8, - 0x95 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppBGR555 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x09 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppBGR565 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x0A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppBGRA5551 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x2B, 0x7C, 0xEC, 0x05, - 0xE6, 0xF1, - 0x61, 0x49, - 0xAD, - 0x46, - 0xE1, - 0xCC, - 0x81, - 0x0A, - 0x87, - 0xD2 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppGray - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x0B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat24bppBGR - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x0C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat24bppRGB - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x0D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppBGR - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x0E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppBGRA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x0F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppPBGRA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x10 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppGrayFloat - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x11 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppRGB - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x95, 0x6B, 0x8C, 0xD9, - 0xFE, 0x3E, - 0xD6, 0x47, - 0xBB, - 0x25, - 0xEB, - 0x17, - 0x48, - 0xAB, - 0x0C, - 0xF1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppRGBA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x2D, 0xAD, 0xC7, 0xF5, - 0x8D, 0x6A, - 0xDD, 0x43, - 0xA7, - 0xA8, - 0xA2, - 0x99, - 0x35, - 0x26, - 0x1A, - 0xE9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppPRGBA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x50, 0xA6, 0xC4, 0x3C, - 0x27, 0xA5, - 0x37, 0x4D, - 0xA9, - 0x16, - 0x31, - 0x42, - 0xC7, - 0xEB, - 0xED, - 0xBA - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bppRGB - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x15 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bppBGR - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x84, 0xA3, 0x05, 0xE6, - 0x68, 0xB4, - 0xCE, 0x46, - 0xBB, - 0x2E, - 0x36, - 0xF1, - 0x80, - 0xE6, - 0x43, - 0x13 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppRGB - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x11, 0x21, 0x18, 0xA1, - 0x6D, 0x18, - 0x42, 0x4D, - 0xBC, - 0x6A, - 0x9C, - 0x83, - 0x03, - 0xA8, - 0xDF, - 0xF9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppRGBA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x16 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppBGRA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x7C, 0xFF, 0x62, 0x15, - 0x52, 0xD3, - 0xF9, 0x46, - 0x97, - 0x9E, - 0x42, - 0x97, - 0x6B, - 0x79, - 0x22, - 0x46 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppPRGBA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x17 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppPBGRA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8E, 0x8E, 0x51, 0x8C, - 0xEC, 0xA4, - 0x8B, 0x46, - 0xAE, - 0x70, - 0xC9, - 0xA3, - 0x5A, - 0x9C, - 0x55, - 0x30 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppGrayFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x13 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppBGR101010 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x14 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bppRGBFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x12 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bppBGRFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0E, 0x14, 0xCA, 0x49, - 0xB6, 0xCA, - 0x3B, 0x49, - 0x9D, - 0xDF, - 0x60, - 0x18, - 0x7C, - 0x37, - 0x53, - 0x2A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat96bppRGBFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x18 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat96bppRGBFloat - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8F, 0xD7, 0xFE, 0xE3, - 0xDB, 0xE8, - 0xCF, 0x4A, - 0x84, - 0xC1, - 0xE9, - 0x7F, - 0x61, - 0x36, - 0xB3, - 0x27 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bppRGBAFloat - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x19 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bppPRGBAFloat - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x1A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bppRGBFloat - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x1B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppCMYK - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x1C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppRGBAFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x1D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppBGRAFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3C, 0xE3, 0x6D, 0x35, - 0xD2, 0x54, - 0x23, 0x4A, - 0xBB, - 0x04, - 0x9B, - 0x7B, - 0xF9, - 0xB1, - 0xD4, - 0x2D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppRGBFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x40 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bppRGBAFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x1E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bppRGBFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x41 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppRGBAHalf - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x3A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppPRGBAHalf - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC2, 0x26, 0xAD, 0x58, - 0x23, 0xC6, - 0x9D, 0x4D, - 0xB3, - 0x20, - 0x38, - 0x7E, - 0x49, - 0xF8, - 0xC4, - 0x42 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppRGBHalf - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x42 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bppRGBHalf - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x3B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppRGBE - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x3D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppGrayHalf - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x3E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppGrayFixedPoint - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x3F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppRGBA1010102 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x72, 0x8D, 0x23, 0x25, - 0xF9, 0xFC, - 0x22, 0x45, - 0xB5, - 0x14, - 0x55, - 0x78, - 0xE5, - 0xAD, - 0x55, - 0xE0 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppRGBA1010102XR - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x9A, 0x6B, 0xDE, 0x00, - 0x01, 0xC1, - 0x4B, 0x43, - 0xB5, - 0x02, - 0xD0, - 0x16, - 0x5E, - 0xE1, - 0x12, - 0x2C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppR10G10B10A2 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xB5, 0x1B, 0x4E, 0x60, - 0x3C, 0x8A, - 0x65, 0x4B, - 0xB1, - 0x1C, - 0xBC, - 0x0B, - 0x8D, - 0xD7, - 0x5B, - 0x7F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bppR10G10B10A2HDR10 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5D, 0x5C, 0x21, 0x9C, - 0xCC, 0x1A, - 0x0E, 0x4F, - 0xA4, - 0xBC, - 0x70, - 0xFB, - 0x3A, - 0xE8, - 0xFD, - 0x28 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bppCMYK - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x1F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat24bpp3Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x20 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bpp4Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x21 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat40bpp5Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x22 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bpp6Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x23 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat56bpp7Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x24 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bpp8Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x25 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bpp3Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x26 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bpp4Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x27 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat80bpp5Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x28 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat96bpp6Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x29 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat112bpp7Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x2A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bpp8Channels - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x2B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat40bppCMYKAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x2C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat80bppCMYKAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x2D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat32bpp3ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x2E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat40bpp4ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x2F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat48bpp5ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x30 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat56bpp6ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x31 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bpp7ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x32 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat72bpp8ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x33 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat64bpp3ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x34 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat80bpp4ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x35 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat96bpp5ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x36 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat112bpp6ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x37 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat128bpp7ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x38 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat144bpp8ChannelsAlpha - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xC3, 0xDD, 0x6F, - 0x03, 0x4E, - 0xFE, 0x4B, - 0xB1, - 0x85, - 0x3D, - 0x77, - 0x76, - 0x8D, - 0xC9, - 0x39 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat8bppY - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x54, 0xDB, 0xB4, 0x91, - 0xF9, 0x2D, - 0xF0, 0x42, - 0xB4, - 0x49, - 0x29, - 0x09, - 0xBB, - 0x3D, - 0xF8, - 0x8E - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat8bppCb - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x24, 0xF2, 0x39, 0x13, - 0xFE, 0x6B, - 0x3E, 0x4C, - 0x93, - 0x02, - 0xE4, - 0xF3, - 0xA6, - 0xD0, - 0xCA, - 0x2A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat8bppCr - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x53, 0x50, 0x14, 0xB8, - 0x16, 0x21, - 0xF0, 0x49, - 0x88, - 0x35, - 0xED, - 0x84, - 0x4B, - 0x20, - 0x5C, - 0x51 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppCbCr - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x6E, 0xBA, 0x95, 0xFF, - 0xE0, 0x11, - 0x63, 0x42, - 0xBB, - 0x45, - 0x01, - 0x72, - 0x1F, - 0x34, - 0x60, - 0xA4 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppYQuantizedDctCoefficients - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x33, 0xF4, 0x55, 0xA3, - 0xE8, 0x48, - 0x42, 0x4A, - 0x84, - 0xD8, - 0xE2, - 0xAA, - 0x26, - 0xCA, - 0x80, - 0xA4 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppCbQuantizedDctCoefficients - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x61, 0xFF, 0xC4, 0xD2, - 0xA5, 0x56, - 0xC2, 0x49, - 0x8B, - 0x5C, - 0x4C, - 0x19, - 0x25, - 0x96, - 0x48, - 0x37 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_WICPixelFormat16bppCrQuantizedDctCoefficients - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xF0, 0x54, 0xE3, 0x2F, - 0x80, 0x16, - 0xD8, 0x42, - 0x92, - 0x31, - 0xE7, - 0x3C, - 0x05, - 0x65, - 0xBF, - 0xC1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public const uint FACILITY_WINCODEC_ERR = 2200; - - public const uint WINCODEC_ERR_BASE = 8192; - - public const int WINCODEC_ERR_GENERIC_ERROR = -2147467259; - - public const int WINCODEC_ERR_INVALIDPARAMETER = -2147024809; - - public const int WINCODEC_ERR_OUTOFMEMORY = -2147024882; - - public const int WINCODEC_ERR_NOTIMPLEMENTED = -2147467263; - - public const int WINCODEC_ERR_ABORTED = -2147467260; - - public const int WINCODEC_ERR_ACCESSDENIED = -2147024891; - - public const uint WICRawChangeNotification_ExposureCompensation = 1; - - public const uint WICRawChangeNotification_NamedWhitePoint = 2; - - public const uint WICRawChangeNotification_KelvinWhitePoint = 4; - - public const uint WICRawChangeNotification_RGBWhitePoint = 8; - - public const uint WICRawChangeNotification_Contrast = 16; - - public const uint WICRawChangeNotification_Gamma = 32; - - public const uint WICRawChangeNotification_Sharpness = 64; - - public const uint WICRawChangeNotification_Saturation = 128; - - public const uint WICRawChangeNotification_Tint = 256; - - public const uint WICRawChangeNotification_NoiseReduction = 512; - - public const uint WICRawChangeNotification_DestinationColorContext = 1024; - - public const uint WICRawChangeNotification_ToneCurve = 2048; - - public const uint WICRawChangeNotification_Rotation = 4096; - - public const uint WICRawChangeNotification_RenderMode = 8192; - - public static ref readonly Guid GUID_MetadataFormatUnknown - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x2F, 0x59, 0x5E, 0xA4, - 0x78, 0x90, - 0x7C, 0x4A, - 0xAD, - 0xB5, - 0x4E, - 0xDC, - 0x4F, - 0xD6, - 0x1B, - 0x1F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatIfd - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC6, 0x96, 0x73, 0x53, - 0x8A, 0x2D, - 0xB6, 0x4B, - 0x9B, - 0xF8, - 0x2F, - 0x0A, - 0x8E, - 0x2A, - 0x3A, - 0xDF - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatSubIfd - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x28, 0xE1, 0xA2, 0x58, - 0xB9, 0x2D, - 0x57, 0x4E, - 0xBB, - 0x14, - 0x51, - 0x77, - 0x89, - 0x1E, - 0xD3, - 0x31 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatExif - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x9D, 0x4F, 0x3C, 0x1C, - 0x4A, 0xB8, - 0x7D, 0x46, - 0x94, - 0x93, - 0x36, - 0xCF, - 0xBD, - 0x59, - 0xEA, - 0x57 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatGps - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8A, 0xAB, 0x34, 0x71, - 0x51, 0x93, - 0xAD, 0x44, - 0xAF, - 0x62, - 0x44, - 0x8D, - 0xB6, - 0xB5, - 0x02, - 0xEC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatInterop - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8E, 0x6F, 0x68, 0xED, - 0x1F, 0x68, - 0x8B, 0x4C, - 0xBD, - 0x41, - 0xA8, - 0xAD, - 0xDB, - 0xF6, - 0xB3, - 0xFC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatApp0 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x28, 0x70, 0x00, 0x79, - 0x8D, 0x26, - 0xD6, 0x45, - 0xA3, - 0xC2, - 0x35, - 0x4E, - 0x6A, - 0x50, - 0x4B, - 0xC9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatApp1 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC3, 0xDF, 0xD3, 0x8F, - 0x51, 0xF9, - 0x2B, 0x49, - 0x81, - 0x7F, - 0x69, - 0xC2, - 0xE6, - 0xD9, - 0xA5, - 0xB0 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatApp13 - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xA2, 0x56, 0x65, 0x32, - 0x02, 0xF5, - 0x54, 0x43, - 0x9C, - 0xC0, - 0x8E, - 0x3F, - 0x48, - 0xEA, - 0xF6, - 0xB5 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatIPTC - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x14, 0x09, 0xAB, 0x4F, - 0x29, 0xE1, - 0x87, 0x40, - 0xA1, - 0xD1, - 0xBC, - 0x81, - 0x2D, - 0x45, - 0xA7, - 0xB5 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatIRB - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x66, 0x0D, 0x10, 0x16, - 0x70, 0x85, - 0xB9, 0x4B, - 0xB9, - 0x2D, - 0xFD, - 0xA4, - 0xB2, - 0x3E, - 0xCE, - 0x67 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormat8BIMIPTC - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8C, 0x56, 0x10, 0x00, - 0x52, 0x08, - 0x6A, 0x4E, - 0xB1, - 0x91, - 0x5C, - 0x33, - 0xAC, - 0x5B, - 0x04, - 0x30 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormat8BIMResolutionInfo - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5D, 0x30, 0x9F, 0x73, - 0xDB, 0x81, - 0xCB, 0x43, - 0xAC, - 0x5E, - 0x55, - 0x01, - 0x3E, - 0xF9, - 0xF0, - 0x03 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormat8BIMIPTCDigest - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x85, 0x22, 0xA3, 0x1C, - 0xCD, 0x9C, - 0x86, 0x47, - 0x8B, - 0xD8, - 0x79, - 0x53, - 0x9D, - 0xB6, - 0xA0, - 0x06 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatXMP - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x38, 0xCC, 0x5A, 0xBB, - 0x16, 0xF2, - 0xEC, 0x4C, - 0xA6, - 0xC5, - 0x5F, - 0x6E, - 0x73, - 0x97, - 0x63, - 0xA9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatThumbnail - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE9, 0xCE, 0x3D, 0x24, - 0x03, 0x87, - 0xEE, 0x40, - 0x8E, - 0xF0, - 0x22, - 0xA6, - 0x00, - 0xB8, - 0x05, - 0x8C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunktEXt - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x36, 0x89, 0x8D, 0x56, - 0xA9, 0xC0, - 0x23, 0x49, - 0x90, - 0x5D, - 0xDF, - 0x2B, - 0x38, - 0x23, - 0x8F, - 0xBC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatXMPStruct - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xF1, 0x3C, 0x38, 0x22, - 0x17, 0xED, - 0x2E, 0x4E, - 0xAF, - 0x17, - 0xD8, - 0x5B, - 0x8F, - 0x6B, - 0x30, - 0xD0 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatXMPBag - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5F, 0xCA, 0x3C, 0x83, - 0xB7, 0xDC, - 0x16, 0x45, - 0x80, - 0x6F, - 0x65, - 0x96, - 0xAB, - 0x26, - 0xDC, - 0xE4 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatXMPSeq - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x02, 0xDF, 0xE8, 0x63, - 0x6C, 0xEB, - 0x6C, 0x45, - 0xA2, - 0x24, - 0xB2, - 0x5E, - 0x79, - 0x4F, - 0xD6, - 0x48 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatXMPAlt - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x75, 0xA6, 0x08, 0x7B, - 0xAA, 0x91, - 0x1B, 0x48, - 0xA7, - 0x98, - 0x4D, - 0xA9, - 0x49, - 0x08, - 0x61, - 0x3B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatLSD - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x1E, 0x03, 0x56, 0xE2, - 0x99, 0x62, - 0x29, 0x49, - 0xB9, - 0x8D, - 0x5A, - 0xC8, - 0x84, - 0xAF, - 0xBA, - 0x92 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatIMD - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x86, 0xB0, 0x2B, 0xBD, - 0x52, 0x4D, - 0xDD, 0x48, - 0x96, - 0x77, - 0xDB, - 0x48, - 0x3E, - 0x85, - 0xAE, - 0x8F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatGCE - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xD8, 0xCA, 0x25, 0x2A, - 0xEB, 0xDE, - 0x69, 0x4C, - 0xA7, - 0x88, - 0x0E, - 0xC2, - 0x26, - 0x6D, - 0xCA, - 0xFD - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatAPE - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC2, 0x3D, 0x04, 0x2E, - 0x67, 0xC9, - 0x05, 0x4E, - 0x87, - 0x5E, - 0x61, - 0x8B, - 0xF6, - 0x7E, - 0x85, - 0xC3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatJpegChrominance - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xCF, 0x0D, 0x3D, 0xF7, - 0xC6, 0xCE, - 0x85, 0x4F, - 0x9B, - 0x0E, - 0x1C, - 0x39, - 0x56, - 0xB1, - 0xBE, - 0xF7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatJpegLuminance - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x07, 0x80, 0x90, 0x86, - 0xFC, 0xED, - 0x60, 0x48, - 0x8D, - 0x4B, - 0x4E, - 0xE6, - 0xE8, - 0x3E, - 0x60, - 0x58 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatJpegComment - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x33, 0x5F, 0x0E, 0x22, - 0xD3, 0xAF, - 0x4E, 0x47, - 0x9D, - 0x31, - 0x7D, - 0x4F, - 0xE7, - 0x30, - 0xF5, - 0x57 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatGifComment - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE0, 0xE0, 0xB6, 0xC4, - 0xB4, 0xCF, - 0xD3, 0x4A, - 0xAB, - 0x33, - 0x9A, - 0xAD, - 0x23, - 0x55, - 0xA3, - 0x4A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunkgAMA - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xA5, 0x35, 0x09, 0xF0, - 0x5D, 0x1D, - 0xD1, 0x4C, - 0x81, - 0xB2, - 0x93, - 0x24, - 0xD7, - 0xEC, - 0xA7, - 0x81 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunkbKGD - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x71, 0x35, 0x4D, 0xE1, - 0x47, 0x6B, - 0xEA, 0x4D, - 0xB6, - 0x0A, - 0x87, - 0xCE, - 0x0A, - 0x78, - 0xDF, - 0xB7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunkiTXt - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x29, 0xC7, 0xBE, 0xC2, - 0x68, 0x0B, - 0x77, 0x4B, - 0xAA, - 0x0E, - 0x62, - 0x95, - 0xA6, - 0xAC, - 0x18, - 0x14 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunkcHRM - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5B, 0x65, 0xB3, 0x9D, - 0x42, 0x28, - 0xB3, 0x44, - 0x80, - 0x67, - 0x12, - 0xE9, - 0xB3, - 0x75, - 0x55, - 0x6A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunkhIST - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xDA, 0x82, 0x9A, 0xC5, - 0x74, 0xDB, - 0xA4, 0x48, - 0xBD, - 0x6A, - 0xB6, - 0x9C, - 0x49, - 0x31, - 0xEF, - 0x95 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunkiCCP - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xAB, 0x49, 0x43, 0xEB, - 0x85, 0xB6, - 0x0F, 0x45, - 0x91, - 0xB5, - 0xE8, - 0x02, - 0xE8, - 0x92, - 0x53, - 0x6C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunksRGB - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x36, 0xFD, 0x15, 0xC1, - 0x6F, 0xCC, - 0x3F, 0x4E, - 0x83, - 0x63, - 0x52, - 0x4B, - 0x87, - 0xC6, - 0xB0, - 0xD9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatChunktIME - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x2D, 0xAE, 0x00, 0x6B, - 0x4B, 0xE2, - 0x0A, 0x46, - 0x98, - 0xB6, - 0x87, - 0x8B, - 0xD0, - 0x30, - 0x72, - 0xFD - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatDds - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x03, 0x46, 0x06, 0x4A, - 0x33, 0x8C, - 0x60, 0x4E, - 0x9C, - 0x29, - 0x13, - 0x62, - 0x31, - 0x70, - 0x2D, - 0x08 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatHeif - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE1, 0xF3, 0x7E, 0x81, - 0x88, 0x12, - 0xF4, 0x45, - 0xA8, - 0x52, - 0x26, - 0x0D, - 0x9E, - 0x7C, - 0xCE, - 0x83 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatHeifHDR - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8A, 0x8D, 0x8B, 0x56, - 0x65, 0x1E, - 0x8C, 0x43, - 0x89, - 0x68, - 0xD6, - 0x0E, - 0x10, - 0x12, - 0xBE, - 0xB9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatWebpANIM - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xA6, 0xFD, 0xC4, 0x6D, - 0xE6, 0x78, - 0x02, 0x41, - 0xAE, - 0x35, - 0xBC, - 0xFA, - 0x1E, - 0xDC, - 0xC7, - 0x8B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid GUID_MetadataFormatWebpANMF - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xEE, 0x05, 0xC1, 0x43, - 0x3B, 0xB9, - 0xBB, 0x4A, - 0xB0, - 0x03, - 0xA0, - 0x8C, - 0x0D, - 0x87, - 0x04, - 0x71 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICUnknownMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC2, 0x45, 0x97, 0x69, - 0x66, 0x50, - 0x82, 0x4B, - 0xA8, - 0xE3, - 0xD4, - 0x04, - 0x78, - 0xDB, - 0xEC, - 0x8C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICUnknownMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x86, 0xCA, 0x9C, 0xA0, - 0xBA, 0x27, - 0x39, 0x4F, - 0x90, - 0x53, - 0x12, - 0x1F, - 0xA4, - 0xDC, - 0x08, - 0xFC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICApp0MetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xA2, 0x33, 0xC6, 0xF3, - 0xC8, 0x46, - 0x8E, 0x49, - 0x8F, - 0xBB, - 0xCC, - 0x6F, - 0x72, - 0x1B, - 0xBC, - 0xDE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICApp0MetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x33, 0x4B, 0x32, 0x43, - 0x8F, 0xA7, - 0x0F, 0x48, - 0x91, - 0x11, - 0x96, - 0x38, - 0xAA, - 0xCC, - 0xC8, - 0x32 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICApp1MetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x69, 0x60, 0x36, 0xEE, - 0x32, 0x18, - 0x0F, 0x42, - 0xB3, - 0x81, - 0x04, - 0x79, - 0xAD, - 0x06, - 0x6F, - 0x19 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICApp1MetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x13, 0x35, 0xE3, 0xDD, - 0x4E, 0x77, - 0xCD, 0x4B, - 0xAE, - 0x79, - 0x02, - 0xF4, - 0xAD, - 0xFE, - 0x62, - 0xFC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICApp13MetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x19, 0xA9, 0x19, 0x7B, - 0xD6, 0xA9, - 0xE5, 0x49, - 0xBD, - 0x45, - 0x02, - 0xC3, - 0x4E, - 0x4E, - 0x4C, - 0xD5 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICApp13MetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x50, 0x3C, 0x7E, 0xAA, - 0x4C, 0x86, - 0x04, 0x46, - 0xBC, - 0x04, - 0x8B, - 0x0B, - 0x76, - 0xE6, - 0x37, - 0xF6 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIfdMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x56, 0x46, 0x91, 0x8F, - 0x0A, 0x9D, - 0xB2, 0x4E, - 0x90, - 0x19, - 0x0B, - 0xF9, - 0x6D, - 0x8A, - 0x9E, - 0xE6 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIfdMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x28, 0xFC, 0xEB, 0xB1, - 0xBD, 0xC9, - 0xA2, 0x47, - 0x8D, - 0x33, - 0xB9, - 0x48, - 0x76, - 0x97, - 0x77, - 0xA7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICSubIfdMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x09, 0x2F, 0xD4, 0x50, - 0xD1, 0xEC, - 0x41, 0x4B, - 0xB6, - 0x5D, - 0xDA, - 0x1F, - 0xDA, - 0xA7, - 0x56, - 0x63 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICSubIfdMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x86, 0x53, 0xDE, 0x8A, - 0x9B, 0x8E, - 0x4C, 0x4F, - 0xAC, - 0xF2, - 0xF0, - 0x00, - 0x87, - 0x06, - 0xB2, - 0x38 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICExifMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x60, 0x38, 0x40, 0xD9, - 0x7F, 0x29, - 0x49, 0x4A, - 0xBF, - 0x9B, - 0x77, - 0x89, - 0x81, - 0x50, - 0xA4, - 0x42 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICExifMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xDA, 0x4C, 0xA1, 0xC9, - 0x39, 0xC3, - 0x0B, 0x46, - 0x90, - 0x78, - 0xD4, - 0xDE, - 0xBC, - 0xFA, - 0xBE, - 0x91 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGpsMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0B, 0x79, 0x97, 0x36, - 0x3B, 0x22, - 0x4E, 0x48, - 0x99, - 0x25, - 0xC4, - 0x86, - 0x92, - 0x18, - 0xF1, - 0x7A - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGpsMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE4, 0x13, 0x8C, 0xCB, - 0xB5, 0x62, - 0x96, 0x4C, - 0xA4, - 0x8B, - 0x6B, - 0xA6, - 0xAC, - 0xE3, - 0x9C, - 0x76 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICInteropMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x98, 0xB8, 0xC8, 0xB5, - 0x74, 0x00, - 0x9F, 0x45, - 0xB7, - 0x00, - 0x86, - 0x0D, - 0x46, - 0x51, - 0xEA, - 0x14 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICInteropMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x45, 0xC6, 0x2E, 0x12, - 0x7E, 0xCD, - 0xD8, 0x44, - 0xB1, - 0x86, - 0x2C, - 0x8C, - 0x20, - 0xC3, - 0xB5, - 0x0F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICThumbnailMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x59, 0x29, 0x01, 0xFB, - 0xF6, 0xF4, - 0xD7, 0x44, - 0x9D, - 0x09, - 0xDA, - 0xA0, - 0x87, - 0xA9, - 0xDB, - 0x57 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICThumbnailMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0C, 0xB2, 0x49, 0xD0, - 0xD0, 0x5D, - 0xFE, 0x44, - 0xB0, - 0xB3, - 0x8F, - 0x92, - 0xC8, - 0xE6, - 0xD0, - 0x80 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIPTCMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x59, 0x29, 0x01, 0x03, - 0xF6, 0xF4, - 0xD7, 0x44, - 0x9D, - 0x09, - 0xDA, - 0xA0, - 0x87, - 0xA9, - 0xDB, - 0x57 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIPTCMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0C, 0xB2, 0x49, 0x12, - 0xD0, 0x5D, - 0xFE, 0x44, - 0xB0, - 0xB3, - 0x8F, - 0x92, - 0xC8, - 0xE6, - 0xD0, - 0x80 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIRBMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xD7, 0xD3, 0xDC, 0xD4, - 0xC2, 0xB4, - 0xD9, 0x47, - 0xA6, - 0xBF, - 0xB8, - 0x9B, - 0xA3, - 0x96, - 0xA4, - 0xA3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIRBMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x35, 0x19, 0x5C, 0x5C, - 0x35, 0x02, - 0x34, 0x44, - 0x80, - 0xBC, - 0x25, - 0x1B, - 0xC1, - 0xEC, - 0x39, - 0xC6 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WIC8BIMIPTCMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8C, 0x66, 0x10, 0x00, - 0x01, 0x08, - 0xA6, 0x4D, - 0xA4, - 0xA4, - 0x82, - 0x65, - 0x22, - 0xB6, - 0xD2, - 0x8F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WIC8BIMIPTCMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x26, 0x82, 0x10, 0x00, - 0x41, 0xEE, - 0xA2, 0x44, - 0x9E, - 0x9C, - 0x4B, - 0xE4, - 0xD5, - 0xB1, - 0xD2, - 0xCD - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WIC8BIMResolutionInfoMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x7A, 0x13, 0x05, 0x58, - 0x48, 0xE3, - 0x7C, 0x4F, - 0xB3, - 0xCC, - 0x6D, - 0xB9, - 0x96, - 0x5A, - 0x05, - 0x99 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WIC8BIMResolutionInfoMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0E, 0xFE, 0xF2, 0x4F, - 0x4A, 0xE7, - 0x71, 0x4B, - 0x98, - 0xC4, - 0xAB, - 0x7D, - 0xC1, - 0x67, - 0x07, - 0xBA - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WIC8BIMIPTCDigestMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x1E, 0x5F, 0x80, 0x02, - 0xAA, 0xD5, - 0x5B, 0x41, - 0x82, - 0xC5, - 0x61, - 0xC0, - 0x33, - 0xA9, - 0x88, - 0xA6 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WIC8BIMIPTCDigestMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x2B, 0xE6, 0xB5, 0x2D, - 0x67, 0x0D, - 0x5F, 0x49, - 0x8F, - 0x9D, - 0xC2, - 0xF0, - 0x18, - 0x86, - 0x47, - 0xAC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngTextMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xCC, 0xAF, 0x59, 0x4B, - 0xC3, 0xB8, - 0x8A, 0x40, - 0xB6, - 0x70, - 0x89, - 0xE5, - 0xFA, - 0xB6, - 0xFD, - 0xA7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngTextMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xB9, 0xAF, 0xEB, 0xB5, - 0x3E, 0x25, - 0x72, 0x4A, - 0xA7, - 0x44, - 0x07, - 0x62, - 0xD2, - 0x68, - 0x56, - 0x83 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xDF, 0x24, 0xB6, 0x72, - 0x11, 0xAE, - 0x48, 0x49, - 0xA6, - 0x5C, - 0x35, - 0x1E, - 0xB0, - 0x82, - 0x94, - 0x19 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x4E, 0xE1, 0x65, 0x17, - 0xD4, 0x1B, - 0x2E, 0x46, - 0xB6, - 0xB1, - 0x59, - 0x0B, - 0xF1, - 0x26, - 0x2A, - 0xC6 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPStructMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x9A, 0x0D, 0xB9, 0x01, - 0x09, 0x82, - 0xF7, 0x47, - 0x9C, - 0x52, - 0xE1, - 0x24, - 0x4B, - 0xF5, - 0x0C, - 0xED - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPStructMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x93, 0x1F, 0xC2, 0x22, - 0xDB, 0x7D, - 0x1C, 0x41, - 0x9B, - 0x17, - 0xC5, - 0xB7, - 0xBD, - 0x06, - 0x4A, - 0xBC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPBagMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x30, 0x9A, 0xE7, 0xE7, - 0x2C, 0x4F, - 0xAB, 0x4F, - 0x8D, - 0x00, - 0x39, - 0x4F, - 0x2D, - 0x6B, - 0xBE, - 0xBE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPBagMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x8C, 0x2C, 0x82, 0xED, - 0xBE, 0xD6, - 0x01, 0x43, - 0xA6, - 0x31, - 0x0E, - 0x14, - 0x16, - 0xBA, - 0xD2, - 0x8F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPSeqMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x53, 0xE7, 0x12, 0x7F, - 0x71, 0xFC, - 0xD7, 0x43, - 0xA5, - 0x1D, - 0x92, - 0xF3, - 0x59, - 0x77, - 0xAB, - 0xB5 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPSeqMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xDE, 0xD1, 0x68, 0x6D, - 0x32, 0xD4, - 0x0F, 0x4B, - 0x92, - 0x3A, - 0x09, - 0x11, - 0x83, - 0xA9, - 0xBD, - 0xA7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPAltMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC2, 0xDC, 0x94, 0xAA, - 0xB0, 0xB8, - 0x98, 0x48, - 0xB8, - 0x35, - 0x00, - 0x0A, - 0xAB, - 0xD7, - 0x43, - 0x93 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICXMPAltMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x6C, 0x2A, 0x6C, 0x07, - 0x8F, 0xF7, - 0x46, 0x4C, - 0xA7, - 0x23, - 0x35, - 0x83, - 0xE7, - 0x08, - 0x76, - 0xEA - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICLSDMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x93, 0x07, 0x07, 0x41, - 0xE4, 0x59, - 0x9A, 0x47, - 0xA1, - 0xF7, - 0x95, - 0x4A, - 0xDC, - 0x2E, - 0xF5, - 0xFC - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICLSDMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xE7, 0x37, 0xC0, 0x73, - 0xD9, 0xE5, - 0x54, 0x49, - 0x87, - 0x6A, - 0x6D, - 0xA8, - 0x1D, - 0x6E, - 0x57, - 0x68 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGCEMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5D, 0x34, 0x2E, 0xB9, - 0x2D, 0xF5, - 0xF3, 0x41, - 0xB5, - 0x62, - 0x08, - 0x1B, - 0xC7, - 0x72, - 0xE3, - 0xB9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGCEMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x76, 0xDC, 0x95, 0xAF, - 0xB2, 0x16, - 0xF4, 0x47, - 0xB3, - 0xEA, - 0x3C, - 0x31, - 0x79, - 0x66, - 0x93, - 0xE7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIMDMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x67, 0xA2, 0x47, 0x74, - 0x15, 0x00, - 0xC8, 0x42, - 0xA8, - 0xF1, - 0xFB, - 0x3B, - 0x94, - 0xC6, - 0x83, - 0x61 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICIMDMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x1F, 0x07, 0x89, 0x8C, - 0x2E, 0x45, - 0x95, 0x4E, - 0x96, - 0x82, - 0x9D, - 0x10, - 0x24, - 0x62, - 0x71, - 0x72 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICAPEMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3A, 0xB9, 0x67, 0x17, - 0x21, 0xB0, - 0xEA, 0x44, - 0x92, - 0x0F, - 0x86, - 0x3C, - 0x11, - 0xF4, - 0xF7, - 0x68 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICAPEMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xCA, 0xDF, 0x6E, 0xBD, - 0x90, 0x28, - 0x2F, 0x48, - 0xB2, - 0x33, - 0x8D, - 0x73, - 0x39, - 0xA1, - 0xCF, - 0x8D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegChrominanceMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x4B, 0x90, 0xB1, 0x50, - 0x8F, 0xF2, - 0x74, 0x45, - 0x93, - 0xF4, - 0x0B, - 0xAD, - 0xE8, - 0x2C, - 0x69, - 0xE9 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegChrominanceMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xF0, 0x66, 0xF5, 0x3F, - 0x6B, 0x6E, - 0xD4, 0x49, - 0x96, - 0xE6, - 0xB7, - 0x88, - 0x86, - 0x69, - 0x2C, - 0x62 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegLuminanceMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x88, 0x2F, 0x6F, 0x35, - 0xA6, 0x05, - 0x28, 0x47, - 0xB9, - 0xA4, - 0x1B, - 0xFB, - 0xCE, - 0x04, - 0xD8, - 0x38 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegLuminanceMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xBC, 0x3A, 0x58, 0x1D, - 0x0E, 0x8A, - 0x57, 0x46, - 0x99, - 0x82, - 0xA3, - 0x80, - 0xCA, - 0x58, - 0xFB, - 0x4B - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegCommentMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x7C, 0x34, 0x66, 0x9F, - 0xC4, 0x60, - 0x4D, 0x4C, - 0xAB, - 0x58, - 0xD2, - 0x35, - 0x86, - 0x85, - 0xF6, - 0x07 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICJpegCommentMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x6F, 0x23, 0x73, 0xE5, - 0xB1, 0x55, - 0xDA, 0x4E, - 0x81, - 0xEA, - 0x9F, - 0x65, - 0xDB, - 0x02, - 0x90, - 0xD3 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGifCommentMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3B, 0x7D, 0x55, 0x32, - 0xDC, 0x69, - 0x95, 0x4F, - 0x83, - 0x6E, - 0xF5, - 0x97, - 0x2B, - 0x2F, - 0x61, - 0x59 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICGifCommentMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xFC, 0x97, 0x27, 0xA0, - 0xAE, 0xC4, - 0x8C, 0x41, - 0xAF, - 0x95, - 0xE6, - 0x37, - 0xC7, - 0xEA, - 0xD2, - 0xA1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngGamaMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x39, 0xCA, 0x92, 0x36, - 0x82, 0xE0, - 0x50, 0x43, - 0x9E, - 0x1F, - 0x37, - 0x04, - 0xCB, - 0x08, - 0x3C, - 0xD5 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngGamaMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x13, 0x6D, 0x03, 0xFF, - 0x4B, 0x5D, - 0xDD, 0x46, - 0xB1, - 0x0F, - 0x10, - 0x66, - 0x93, - 0xD9, - 0xFE, - 0x4F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngBkgdMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xA6, 0xA4, 0xE7, 0x0C, - 0xE8, 0x03, - 0x60, 0x4A, - 0x9D, - 0x15, - 0x28, - 0x2E, - 0xF3, - 0x2E, - 0xE7, - 0xDA - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngBkgdMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xFD, 0xF2, 0xE3, 0x68, - 0xAE, 0x31, - 0x41, 0x44, - 0xBB, - 0x6A, - 0xFD, - 0x70, - 0x47, - 0x52, - 0x5F, - 0x90 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngItxtMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xFA, 0xB2, 0xBF, 0xAA, - 0x1E, 0x3E, - 0x8F, 0x4A, - 0x89, - 0x77, - 0x55, - 0x56, - 0xFB, - 0x94, - 0xEA, - 0x23 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngItxtMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x19, 0x97, 0x87, 0x31, - 0x51, 0xE7, - 0xF8, 0x4D, - 0x98, - 0x1D, - 0x68, - 0xDF, - 0xF6, - 0x77, - 0x04, - 0xED - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngChrmMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x36, 0x5F, 0x0B, 0xF9, - 0x7B, 0x36, - 0x2A, 0x40, - 0x9D, - 0xD1, - 0xBC, - 0x0F, - 0xD5, - 0x9D, - 0x8F, - 0x62 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngChrmMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xEB, 0xE3, 0x3C, 0xE2, - 0x08, 0x56, - 0x83, 0x4E, - 0xBC, - 0xEF, - 0x27, - 0xB1, - 0x98, - 0x7E, - 0x51, - 0xD7 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngHistMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xB7, 0x0B, 0x7A, 0x87, - 0x13, 0xA3, - 0x91, 0x44, - 0x87, - 0xB5, - 0x2E, - 0x6D, - 0x05, - 0x94, - 0xF5, - 0x20 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngHistMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x49, 0xE7, 0x03, 0x8A, - 0x2E, 0x67, - 0x6E, 0x44, - 0xBF, - 0x1F, - 0x2C, - 0x11, - 0xD2, - 0x33, - 0xB6, - 0xFF - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngIccpMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3B, 0xE6, 0xD3, 0xF5, - 0x0F, 0xCB, - 0x28, 0x46, - 0xA4, - 0x78, - 0x6D, - 0x82, - 0x44, - 0xBE, - 0x36, - 0xB1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngIccpMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x5F, 0x1E, 0x67, 0x16, - 0xE6, 0x0C, - 0xC4, 0x4C, - 0x97, - 0x68, - 0xE8, - 0x9F, - 0xE5, - 0x01, - 0x8A, - 0xDE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngSrgbMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x0C, 0x36, 0x40, 0xFB, - 0x7E, 0x54, - 0x56, 0x49, - 0xA3, - 0xB9, - 0xD4, - 0x41, - 0x88, - 0x59, - 0xBA, - 0x66 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngSrgbMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xC6, 0x35, 0xEE, 0xA6, - 0xEC, 0x87, - 0xDF, 0x47, - 0x9F, - 0x22, - 0x1D, - 0x5A, - 0xAD, - 0x84, - 0x0C, - 0x82 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngTimeMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x02, 0xDF, 0x4E, 0xD9, - 0xE5, 0xEF, - 0x0D, 0x4F, - 0x85, - 0xC8, - 0xF5, - 0xA6, - 0x8B, - 0x30, - 0x00, - 0xB1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICPngTimeMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x00, 0x84, 0xB7, 0x1A, - 0xA3, 0xB5, - 0x91, 0x4D, - 0x8A, - 0xCE, - 0x33, - 0xFC, - 0xD1, - 0x49, - 0x9B, - 0xE6 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICDdsMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xCA, 0x88, 0x6C, 0x27, - 0x33, 0x75, - 0x86, 0x4A, - 0xB6, - 0x76, - 0x66, - 0xB3, - 0x60, - 0x80, - 0xD4, - 0x84 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICDdsMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xBD, 0x8B, 0x68, 0xFD, - 0xED, 0x31, - 0xB7, 0x4D, - 0xA7, - 0x23, - 0x93, - 0x49, - 0x27, - 0xD3, - 0x83, - 0x67 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICHeifMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3F, 0xFC, 0xDD, 0xAC, - 0xEC, 0x85, - 0xBC, 0x41, - 0xBD, - 0xEF, - 0x1B, - 0xC2, - 0x62, - 0xE4, - 0xDB, - 0x05 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICHeifMetadataWriter - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x79, 0x5E, 0xE4, 0x3A, - 0xBC, 0x40, - 0x01, 0x44, - 0xAC, - 0xE5, - 0xDD, - 0x3C, - 0xB1, - 0x6E, - 0x6A, - 0xFE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICHeifHDRMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x3D, 0xDE, 0x38, 0x24, - 0xD9, 0x94, - 0xE8, 0x4B, - 0x84, - 0xA8, - 0x4D, - 0xE9, - 0x5A, - 0x57, - 0x5E, - 0x75 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICWebpAnimMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x11, 0x99, 0x6F, 0x07, - 0x48, 0xA3, - 0x5C, 0x46, - 0xA8, - 0x07, - 0xA2, - 0x52, - 0xF3, - 0xF2, - 0xD3, - 0xDE - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_WICWebpAnmfMetadataReader - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x03, 0x0B, 0xA1, 0x85, - 0xF6, 0xC9, - 0x9F, 0x43, - 0xBE, - 0x5E, - 0xC0, - 0xFB, - 0xEF, - 0x67, - 0x80, - 0x7C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } + public const uint WINCODEC_SDK_VERSION1 = 566; + + public const uint WINCODEC_SDK_VERSION2 = 567; + + public static ref readonly Guid CLSID_WICImagingFactory + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x62, 0xF2, 0xCA, 0xCA, + 0x70, 0x93, + 0x15, 0x46, + 0xA1, + 0x3B, + 0x9F, + 0x55, + 0x39, + 0xDA, + 0x4C, + 0x0A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICImagingFactory1 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x62, 0xF2, 0xCA, 0xCA, + 0x70, 0x93, + 0x15, 0x46, + 0xA1, + 0x3B, + 0x9F, + 0x55, + 0x39, + 0xDA, + 0x4C, + 0x0A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICImagingFactory2 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE8, 0x06, 0x7D, 0x31, + 0x24, 0x5F, + 0x3D, 0x43, + 0xBD, + 0xF7, + 0x79, + 0xCE, + 0x68, + 0xD8, + 0xAB, + 0xC2 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public const uint WINCODEC_SDK_VERSION = 567; + + public static ref readonly Guid GUID_VendorMicrosoft + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xCA, 0x49, 0xE7, 0xF0, + 0xEF, 0xED, + 0x89, 0x45, + 0xA7, + 0x3A, + 0xEE, + 0x0E, + 0x62, + 0x6A, + 0x2A, + 0x2B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_VendorMicrosoftBuiltIn + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xFD, 0x30, 0x7A, 0x25, + 0xB6, 0x06, + 0x2B, 0x46, + 0xAE, + 0xA4, + 0x63, + 0xF7, + 0x0B, + 0x86, + 0xE5, + 0x33 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x7B, 0xA1, 0x9E, 0x38, + 0x78, 0x50, + 0xDE, 0x4C, + 0xB6, + 0xEF, + 0x25, + 0xC1, + 0x51, + 0x75, + 0xC7, + 0x51 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngDecoder1 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x7B, 0xA1, 0x9E, 0x38, + 0x78, 0x50, + 0xDE, 0x4C, + 0xB6, + 0xEF, + 0x25, + 0xC1, + 0x51, + 0x75, + 0xC7, + 0x51 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngDecoder2 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5B, 0x94, 0x18, 0xE0, + 0x86, 0xAA, + 0x08, 0x40, + 0x9B, + 0xD4, + 0x67, + 0x77, + 0xA1, + 0xE4, + 0x0C, + 0x11 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICBmpDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x62, 0x20, 0x46, 0x6B, + 0xBF, 0x7C, + 0x0D, 0x40, + 0x9F, + 0xDB, + 0x81, + 0x3D, + 0xD1, + 0x0F, + 0x27, + 0x78 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIcoDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xDF, 0xFC, 0x1B, 0xC6, + 0x0F, 0x2E, + 0xAD, 0x4A, + 0xA8, + 0xD7, + 0xE0, + 0x6B, + 0xAF, + 0xEB, + 0xCD, + 0xFE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x80, 0xA4, 0x56, 0x94, + 0x8B, 0xE8, + 0xEA, 0x43, + 0x9E, + 0x73, + 0x0B, + 0x2D, + 0x9B, + 0x71, + 0xB1, + 0xCA + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGifDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3C, 0xDA, 0x1D, 0x38, + 0xE9, 0x9C, + 0x34, 0x48, + 0xA2, + 0x3E, + 0x1F, + 0x98, + 0xF8, + 0xFC, + 0x52, + 0xBE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICTiffDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xD9, 0x85, 0x4E, 0xB5, + 0x23, 0xFE, + 0x9F, 0x49, + 0x8B, + 0x88, + 0x6A, + 0xCE, + 0xA7, + 0x13, + 0x75, + 0x2B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICWmpDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x36, 0xEC, 0x6C, 0xA2, + 0x4C, 0x23, + 0x50, 0x49, + 0xAE, + 0x16, + 0xE3, + 0x4A, + 0xAC, + 0xE7, + 0x1D, + 0x0D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICDdsDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x9F, 0x69, 0x53, 0x90, + 0x41, 0xA3, + 0x9D, 0x42, + 0x9E, + 0x90, + 0xEE, + 0x43, + 0x7C, + 0xF8, + 0x0C, + 0x73 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICBmpEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xB4, 0x8B, 0xBE, 0x69, + 0x6D, 0xD6, + 0xC8, 0x47, + 0x86, + 0x5A, + 0xED, + 0x15, + 0x89, + 0x43, + 0x37, + 0x82 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x69, 0x99, 0x94, 0x27, + 0x6A, 0x87, + 0xD7, 0x41, + 0x94, + 0x47, + 0x56, + 0x8F, + 0x6A, + 0x35, + 0xA4, + 0xDC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC1, 0xF5, 0x34, 0x1A, + 0x5A, 0x4A, + 0xDC, 0x46, + 0xB6, + 0x44, + 0x1F, + 0x45, + 0x67, + 0xE7, + 0xA6, + 0x76 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGifEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x98, 0x55, 0x4F, 0x11, + 0x22, 0x0B, + 0xA0, 0x40, + 0x86, + 0xA1, + 0xC8, + 0x3E, + 0xA4, + 0x95, + 0xAD, + 0xBD + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICTiffEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x10, 0xBE, 0x31, 0x01, + 0x01, 0x20, + 0x5F, 0x4C, + 0xA9, + 0xB0, + 0xCC, + 0x88, + 0xFA, + 0xB6, + 0x4C, + 0xE8 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICWmpEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xCB, 0xE3, 0x4C, 0xAC, + 0xC1, 0xE1, + 0xCD, 0x44, + 0x82, + 0x15, + 0x5A, + 0x16, + 0x65, + 0x50, + 0x9E, + 0xC2 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICDdsEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x94, 0xDE, 0x1D, 0xA6, + 0xCE, 0x66, + 0xC1, 0x4A, + 0x88, + 0x1B, + 0x71, + 0x68, + 0x05, + 0x88, + 0x89, + 0x5E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICAdngDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x11, 0x94, 0x1D, 0x98, + 0x9E, 0x90, + 0xA7, 0x42, + 0x8F, + 0x5D, + 0xA7, + 0x47, + 0xFF, + 0x05, + 0x2E, + 0xDB + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegQualcommPhoneEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x62, 0x5C, 0xED, 0x68, + 0x34, 0xF5, + 0x79, 0x49, + 0xB2, + 0xB3, + 0x68, + 0x6A, + 0x12, + 0xB2, + 0xB3, + 0x4C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICHeifDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0A, 0xA8, 0xA4, 0xE9, + 0xFE, 0x44, + 0xE4, 0x4D, + 0x89, + 0x71, + 0x71, + 0x50, + 0xB1, + 0x0A, + 0x51, + 0x99 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICHeifEncoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC1, 0xCE, 0xBE, 0x0D, + 0xB3, 0x9E, + 0x60, 0x48, + 0x9C, + 0x6F, + 0xDD, + 0xBE, + 0x86, + 0x63, + 0x45, + 0x75 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICWebpDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x86, 0xE8, 0x93, 0x76, + 0xC9, 0x51, + 0x70, 0x40, + 0x84, + 0x19, + 0x9F, + 0x70, + 0x73, + 0x8E, + 0xC8, + 0xFA + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICRAWDecoder + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x02, 0x57, 0x94, 0x41, + 0x02, 0x83, + 0xA6, 0x44, + 0x94, + 0x45, + 0xAC, + 0x98, + 0xE8, + 0xAF, + 0xA0, + 0x86 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatBmp + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x7E, 0xD8, 0xF1, 0x0A, + 0xFE, 0xFC, + 0x88, 0x41, + 0xBD, + 0xEB, + 0xA7, + 0x90, + 0x64, + 0x71, + 0xCB, + 0xE3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatPng + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xF4, 0xFA, 0x7C, 0x1B, + 0x3F, 0x71, + 0x3C, 0x47, + 0xBB, + 0xCD, + 0x61, + 0x37, + 0x42, + 0x5F, + 0xAE, + 0xAF + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatIco + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC4, 0x60, 0xA8, 0xA3, + 0x8F, 0x33, + 0x17, 0x4C, + 0x91, + 0x9A, + 0xFB, + 0xA4, + 0xB5, + 0x62, + 0x8F, + 0x21 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatJpeg + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xAA, 0xA5, 0xE4, 0x19, + 0x62, 0x56, + 0xC5, 0x4F, + 0xA0, + 0xC0, + 0x17, + 0x58, + 0x02, + 0x8E, + 0x10, + 0x57 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatTiff + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x30, 0xCC, 0x3B, 0x16, + 0xE9, 0xE2, + 0x0B, 0x4F, + 0x96, + 0x1D, + 0xA3, + 0xE9, + 0xFD, + 0xB7, + 0x88, + 0xA3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatGif + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x01, 0x56, 0x8A, 0x1F, + 0x4D, 0x7D, + 0xBD, 0x4C, + 0x9C, + 0x82, + 0x1B, + 0xC8, + 0xD4, + 0xEE, + 0xB9, + 0xA5 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatWmp + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xAA, 0x7C, 0xA3, 0x57, + 0x7A, 0x36, + 0x40, 0x45, + 0x91, + 0x6B, + 0xF1, + 0x83, + 0xC5, + 0x09, + 0x3A, + 0x4B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatDds + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x95, 0xCB, 0x67, 0x99, + 0x85, 0x2E, + 0xC8, 0x4A, + 0x8C, + 0xA2, + 0x83, + 0xD7, + 0xCC, + 0xD4, + 0x25, + 0xC9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatAdng + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0D, 0x6D, 0xFF, 0xF3, + 0xC0, 0x38, + 0xC4, 0x41, + 0xB1, + 0xFE, + 0x1F, + 0x38, + 0x24, + 0xF1, + 0x7B, + 0x84 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatHeif + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x21, 0x25, 0xE6, 0xE1, + 0x87, 0x67, + 0x5B, 0x40, + 0xA3, + 0x39, + 0x50, + 0x07, + 0x15, + 0xB5, + 0x76, + 0x3F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatWebp + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE2, 0xB0, 0x94, 0xE0, + 0xF2, 0x67, + 0xB3, 0x45, + 0xB0, + 0xEA, + 0x11, + 0x53, + 0x37, + 0xCA, + 0x7C, + 0xF3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_ContainerFormatRaw + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x60, 0xCE, 0x99, 0xFE, + 0x9C, 0xF1, + 0x3C, 0x43, + 0xA3, + 0xAE, + 0x00, + 0xAC, + 0xEF, + 0xA9, + 0xCA, + 0x21 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICImagingCategories + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x80, 0xD3, 0xE3, 0xFA, + 0xA4, 0xFE, + 0x23, 0x46, + 0x8C, + 0x75, + 0xC6, + 0xB6, + 0x11, + 0x10, + 0xB6, + 0x81 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CATID_WICBitmapDecoders + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x37, 0x68, 0xD9, 0x7E, + 0xF0, 0x96, + 0x12, 0x48, + 0xB2, + 0x11, + 0xF1, + 0x3C, + 0x24, + 0x11, + 0x7E, + 0xD3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CATID_WICBitmapEncoders + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x96, 0x72, 0x75, 0xAC, + 0x22, 0x35, + 0x11, 0x4E, + 0x98, + 0x62, + 0xC1, + 0x7B, + 0xE5, + 0xA1, + 0x76, + 0x7E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CATID_WICPixelFormats + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0F, 0xE7, 0x46, 0x2B, + 0xA7, 0xCD, + 0x3E, 0x47, + 0x89, + 0xF6, + 0xDC, + 0x96, + 0x30, + 0xA2, + 0x39, + 0x0B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CATID_WICFormatConverters + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE8, 0xEA, 0x35, 0x78, + 0x14, 0xBF, + 0xD1, 0x49, + 0x93, + 0xCE, + 0x53, + 0x3A, + 0x40, + 0x7B, + 0x22, + 0x48 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CATID_WICMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xD8, 0x94, 0xAF, 0x05, + 0x74, 0x71, + 0xD2, 0x4C, + 0xBE, + 0x4A, + 0x41, + 0x24, + 0xB8, + 0x0E, + 0xE4, + 0xB8 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CATID_WICMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xA4, 0xB9, 0xE3, 0xAB, + 0x7D, 0x25, + 0x97, 0x4B, + 0xBD, + 0x1A, + 0x29, + 0x4A, + 0xF4, + 0x96, + 0x22, + 0x2E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICDefaultFormatConverter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xDC, 0x11, 0x3F, 0x1A, + 0x14, 0xB5, + 0x17, 0x4B, + 0x8C, + 0x5F, + 0x21, + 0x54, + 0x51, + 0x38, + 0x52, + 0xF1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICFormatConverterHighColor + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x54, 0xD4, 0x75, 0xAC, + 0x37, 0x9F, + 0xF8, 0x48, + 0xB9, + 0x72, + 0x4E, + 0x19, + 0xBC, + 0x85, + 0x60, + 0x11 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICFormatConverterNChannel + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xB2, 0xAB, 0x7C, 0xC1, + 0xA3, 0xD4, + 0xD7, 0x47, + 0xA5, + 0x57, + 0x33, + 0x9B, + 0x2E, + 0xFB, + 0xD4, + 0xF1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICFormatConverterWMPhoto + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x2B, 0x17, 0xB5, 0x9C, + 0x00, 0xD6, + 0xBA, 0x46, + 0xAB, + 0x77, + 0x77, + 0xBB, + 0x7E, + 0x3A, + 0x00, + 0xD9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPlanarFormatConverter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xB8, 0x32, 0x41, 0x18, + 0xF8, 0x32, + 0x84, 0x47, + 0x91, + 0x31, + 0xDD, + 0x72, + 0x24, + 0xB2, + 0x34, + 0x38 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public const uint WIC_JPEG_MAX_COMPONENT_COUNT = 4; + + public const uint WIC_JPEG_MAX_TABLE_INDEX = 3; + + public const uint WIC_JPEG_SAMPLE_FACTORS_ONE = 17; + + public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_420 = 1118498; + + public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_422 = 1118497; + + public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_440 = 1118482; + + public const uint WIC_JPEG_SAMPLE_FACTORS_THREE_444 = 1118481; + + public const uint WIC_JPEG_QUANTIZATION_BASELINE_ONE = 0; + + public const uint WIC_JPEG_QUANTIZATION_BASELINE_THREE = 65792; + + public const uint WIC_JPEG_HUFFMAN_BASELINE_ONE = 0; + + public const uint WIC_JPEG_HUFFMAN_BASELINE_THREE = 1118464; + + public static ref readonly Guid GUID_WICPixelFormatDontCare + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x00 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat1bppIndexed + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x01 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat2bppIndexed + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x02 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat4bppIndexed + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x03 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat8bppIndexed + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x04 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormatBlackWhite + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x05 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat2bppGray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x06 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat4bppGray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x07 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat8bppGray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x08 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat8bppAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x16, 0x01, 0xCD, 0xE6, + 0xBA, 0xEE, + 0x61, 0x41, + 0xAA, + 0x85, + 0x27, + 0xDD, + 0x9F, + 0xB3, + 0xA8, + 0x95 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppBGR555 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x09 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppBGR565 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x0A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppBGRA5551 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x2B, 0x7C, 0xEC, 0x05, + 0xE6, 0xF1, + 0x61, 0x49, + 0xAD, + 0x46, + 0xE1, + 0xCC, + 0x81, + 0x0A, + 0x87, + 0xD2 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppGray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x0B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat24bppBGR + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x0C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat24bppRGB + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x0D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppBGR + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x0E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppBGRA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x0F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppPBGRA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x10 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppGrayFloat + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x11 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppRGB + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x95, 0x6B, 0x8C, 0xD9, + 0xFE, 0x3E, + 0xD6, 0x47, + 0xBB, + 0x25, + 0xEB, + 0x17, + 0x48, + 0xAB, + 0x0C, + 0xF1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppRGBA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x2D, 0xAD, 0xC7, 0xF5, + 0x8D, 0x6A, + 0xDD, 0x43, + 0xA7, + 0xA8, + 0xA2, + 0x99, + 0x35, + 0x26, + 0x1A, + 0xE9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppPRGBA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x50, 0xA6, 0xC4, 0x3C, + 0x27, 0xA5, + 0x37, 0x4D, + 0xA9, + 0x16, + 0x31, + 0x42, + 0xC7, + 0xEB, + 0xED, + 0xBA + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bppRGB + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x15 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bppBGR + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x84, 0xA3, 0x05, 0xE6, + 0x68, 0xB4, + 0xCE, 0x46, + 0xBB, + 0x2E, + 0x36, + 0xF1, + 0x80, + 0xE6, + 0x43, + 0x13 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppRGB + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x11, 0x21, 0x18, 0xA1, + 0x6D, 0x18, + 0x42, 0x4D, + 0xBC, + 0x6A, + 0x9C, + 0x83, + 0x03, + 0xA8, + 0xDF, + 0xF9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppRGBA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x16 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppBGRA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x7C, 0xFF, 0x62, 0x15, + 0x52, 0xD3, + 0xF9, 0x46, + 0x97, + 0x9E, + 0x42, + 0x97, + 0x6B, + 0x79, + 0x22, + 0x46 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppPRGBA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x17 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppPBGRA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8E, 0x8E, 0x51, 0x8C, + 0xEC, 0xA4, + 0x8B, 0x46, + 0xAE, + 0x70, + 0xC9, + 0xA3, + 0x5A, + 0x9C, + 0x55, + 0x30 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppGrayFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x13 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppBGR101010 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x14 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bppRGBFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x12 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bppBGRFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0E, 0x14, 0xCA, 0x49, + 0xB6, 0xCA, + 0x3B, 0x49, + 0x9D, + 0xDF, + 0x60, + 0x18, + 0x7C, + 0x37, + 0x53, + 0x2A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat96bppRGBFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x18 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat96bppRGBFloat + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8F, 0xD7, 0xFE, 0xE3, + 0xDB, 0xE8, + 0xCF, 0x4A, + 0x84, + 0xC1, + 0xE9, + 0x7F, + 0x61, + 0x36, + 0xB3, + 0x27 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bppRGBAFloat + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x19 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bppPRGBAFloat + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x1A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bppRGBFloat + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x1B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppCMYK + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x1C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppRGBAFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x1D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppBGRAFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3C, 0xE3, 0x6D, 0x35, + 0xD2, 0x54, + 0x23, 0x4A, + 0xBB, + 0x04, + 0x9B, + 0x7B, + 0xF9, + 0xB1, + 0xD4, + 0x2D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppRGBFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x40 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bppRGBAFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x1E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bppRGBFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x41 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppRGBAHalf + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x3A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppPRGBAHalf + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC2, 0x26, 0xAD, 0x58, + 0x23, 0xC6, + 0x9D, 0x4D, + 0xB3, + 0x20, + 0x38, + 0x7E, + 0x49, + 0xF8, + 0xC4, + 0x42 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppRGBHalf + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x42 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bppRGBHalf + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x3B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppRGBE + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x3D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppGrayHalf + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x3E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppGrayFixedPoint + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x3F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppRGBA1010102 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x72, 0x8D, 0x23, 0x25, + 0xF9, 0xFC, + 0x22, 0x45, + 0xB5, + 0x14, + 0x55, + 0x78, + 0xE5, + 0xAD, + 0x55, + 0xE0 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppRGBA1010102XR + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x9A, 0x6B, 0xDE, 0x00, + 0x01, 0xC1, + 0x4B, 0x43, + 0xB5, + 0x02, + 0xD0, + 0x16, + 0x5E, + 0xE1, + 0x12, + 0x2C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppR10G10B10A2 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xB5, 0x1B, 0x4E, 0x60, + 0x3C, 0x8A, + 0x65, 0x4B, + 0xB1, + 0x1C, + 0xBC, + 0x0B, + 0x8D, + 0xD7, + 0x5B, + 0x7F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bppR10G10B10A2HDR10 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5D, 0x5C, 0x21, 0x9C, + 0xCC, 0x1A, + 0x0E, 0x4F, + 0xA4, + 0xBC, + 0x70, + 0xFB, + 0x3A, + 0xE8, + 0xFD, + 0x28 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bppCMYK + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x1F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat24bpp3Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x20 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bpp4Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x21 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat40bpp5Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x22 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bpp6Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x23 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat56bpp7Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x24 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bpp8Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x25 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bpp3Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x26 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bpp4Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x27 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat80bpp5Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x28 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat96bpp6Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x29 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat112bpp7Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x2A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bpp8Channels + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x2B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat40bppCMYKAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x2C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat80bppCMYKAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x2D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat32bpp3ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x2E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat40bpp4ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x2F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat48bpp5ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x30 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat56bpp6ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x31 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bpp7ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x32 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat72bpp8ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x33 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat64bpp3ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x34 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat80bpp4ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x35 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat96bpp5ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x36 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat112bpp6ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x37 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat128bpp7ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x38 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat144bpp8ChannelsAlpha + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xC3, 0xDD, 0x6F, + 0x03, 0x4E, + 0xFE, 0x4B, + 0xB1, + 0x85, + 0x3D, + 0x77, + 0x76, + 0x8D, + 0xC9, + 0x39 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat8bppY + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x54, 0xDB, 0xB4, 0x91, + 0xF9, 0x2D, + 0xF0, 0x42, + 0xB4, + 0x49, + 0x29, + 0x09, + 0xBB, + 0x3D, + 0xF8, + 0x8E + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat8bppCb + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x24, 0xF2, 0x39, 0x13, + 0xFE, 0x6B, + 0x3E, 0x4C, + 0x93, + 0x02, + 0xE4, + 0xF3, + 0xA6, + 0xD0, + 0xCA, + 0x2A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat8bppCr + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x53, 0x50, 0x14, 0xB8, + 0x16, 0x21, + 0xF0, 0x49, + 0x88, + 0x35, + 0xED, + 0x84, + 0x4B, + 0x20, + 0x5C, + 0x51 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppCbCr + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x6E, 0xBA, 0x95, 0xFF, + 0xE0, 0x11, + 0x63, 0x42, + 0xBB, + 0x45, + 0x01, + 0x72, + 0x1F, + 0x34, + 0x60, + 0xA4 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppYQuantizedDctCoefficients + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x33, 0xF4, 0x55, 0xA3, + 0xE8, 0x48, + 0x42, 0x4A, + 0x84, + 0xD8, + 0xE2, + 0xAA, + 0x26, + 0xCA, + 0x80, + 0xA4 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppCbQuantizedDctCoefficients + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x61, 0xFF, 0xC4, 0xD2, + 0xA5, 0x56, + 0xC2, 0x49, + 0x8B, + 0x5C, + 0x4C, + 0x19, + 0x25, + 0x96, + 0x48, + 0x37 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_WICPixelFormat16bppCrQuantizedDctCoefficients + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xF0, 0x54, 0xE3, 0x2F, + 0x80, 0x16, + 0xD8, 0x42, + 0x92, + 0x31, + 0xE7, + 0x3C, + 0x05, + 0x65, + 0xBF, + 0xC1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public const uint FACILITY_WINCODEC_ERR = 2200; + + public const uint WINCODEC_ERR_BASE = 8192; + + public const int WINCODEC_ERR_GENERIC_ERROR = -2147467259; + + public const int WINCODEC_ERR_INVALIDPARAMETER = -2147024809; + + public const int WINCODEC_ERR_OUTOFMEMORY = -2147024882; + + public const int WINCODEC_ERR_NOTIMPLEMENTED = -2147467263; + + public const int WINCODEC_ERR_ABORTED = -2147467260; + + public const int WINCODEC_ERR_ACCESSDENIED = -2147024891; + + public const uint WICRawChangeNotification_ExposureCompensation = 1; + + public const uint WICRawChangeNotification_NamedWhitePoint = 2; + + public const uint WICRawChangeNotification_KelvinWhitePoint = 4; + + public const uint WICRawChangeNotification_RGBWhitePoint = 8; + + public const uint WICRawChangeNotification_Contrast = 16; + + public const uint WICRawChangeNotification_Gamma = 32; + + public const uint WICRawChangeNotification_Sharpness = 64; + + public const uint WICRawChangeNotification_Saturation = 128; + + public const uint WICRawChangeNotification_Tint = 256; + + public const uint WICRawChangeNotification_NoiseReduction = 512; + + public const uint WICRawChangeNotification_DestinationColorContext = 1024; + + public const uint WICRawChangeNotification_ToneCurve = 2048; + + public const uint WICRawChangeNotification_Rotation = 4096; + + public const uint WICRawChangeNotification_RenderMode = 8192; + + public static ref readonly Guid GUID_MetadataFormatUnknown + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x2F, 0x59, 0x5E, 0xA4, + 0x78, 0x90, + 0x7C, 0x4A, + 0xAD, + 0xB5, + 0x4E, + 0xDC, + 0x4F, + 0xD6, + 0x1B, + 0x1F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatIfd + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC6, 0x96, 0x73, 0x53, + 0x8A, 0x2D, + 0xB6, 0x4B, + 0x9B, + 0xF8, + 0x2F, + 0x0A, + 0x8E, + 0x2A, + 0x3A, + 0xDF + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatSubIfd + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x28, 0xE1, 0xA2, 0x58, + 0xB9, 0x2D, + 0x57, 0x4E, + 0xBB, + 0x14, + 0x51, + 0x77, + 0x89, + 0x1E, + 0xD3, + 0x31 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatExif + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x9D, 0x4F, 0x3C, 0x1C, + 0x4A, 0xB8, + 0x7D, 0x46, + 0x94, + 0x93, + 0x36, + 0xCF, + 0xBD, + 0x59, + 0xEA, + 0x57 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatGps + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8A, 0xAB, 0x34, 0x71, + 0x51, 0x93, + 0xAD, 0x44, + 0xAF, + 0x62, + 0x44, + 0x8D, + 0xB6, + 0xB5, + 0x02, + 0xEC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatInterop + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8E, 0x6F, 0x68, 0xED, + 0x1F, 0x68, + 0x8B, 0x4C, + 0xBD, + 0x41, + 0xA8, + 0xAD, + 0xDB, + 0xF6, + 0xB3, + 0xFC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatApp0 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x28, 0x70, 0x00, 0x79, + 0x8D, 0x26, + 0xD6, 0x45, + 0xA3, + 0xC2, + 0x35, + 0x4E, + 0x6A, + 0x50, + 0x4B, + 0xC9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatApp1 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC3, 0xDF, 0xD3, 0x8F, + 0x51, 0xF9, + 0x2B, 0x49, + 0x81, + 0x7F, + 0x69, + 0xC2, + 0xE6, + 0xD9, + 0xA5, + 0xB0 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatApp13 + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xA2, 0x56, 0x65, 0x32, + 0x02, 0xF5, + 0x54, 0x43, + 0x9C, + 0xC0, + 0x8E, + 0x3F, + 0x48, + 0xEA, + 0xF6, + 0xB5 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatIPTC + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x14, 0x09, 0xAB, 0x4F, + 0x29, 0xE1, + 0x87, 0x40, + 0xA1, + 0xD1, + 0xBC, + 0x81, + 0x2D, + 0x45, + 0xA7, + 0xB5 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatIRB + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x66, 0x0D, 0x10, 0x16, + 0x70, 0x85, + 0xB9, 0x4B, + 0xB9, + 0x2D, + 0xFD, + 0xA4, + 0xB2, + 0x3E, + 0xCE, + 0x67 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormat8BIMIPTC + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8C, 0x56, 0x10, 0x00, + 0x52, 0x08, + 0x6A, 0x4E, + 0xB1, + 0x91, + 0x5C, + 0x33, + 0xAC, + 0x5B, + 0x04, + 0x30 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormat8BIMResolutionInfo + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5D, 0x30, 0x9F, 0x73, + 0xDB, 0x81, + 0xCB, 0x43, + 0xAC, + 0x5E, + 0x55, + 0x01, + 0x3E, + 0xF9, + 0xF0, + 0x03 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormat8BIMIPTCDigest + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x85, 0x22, 0xA3, 0x1C, + 0xCD, 0x9C, + 0x86, 0x47, + 0x8B, + 0xD8, + 0x79, + 0x53, + 0x9D, + 0xB6, + 0xA0, + 0x06 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatXMP + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x38, 0xCC, 0x5A, 0xBB, + 0x16, 0xF2, + 0xEC, 0x4C, + 0xA6, + 0xC5, + 0x5F, + 0x6E, + 0x73, + 0x97, + 0x63, + 0xA9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatThumbnail + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE9, 0xCE, 0x3D, 0x24, + 0x03, 0x87, + 0xEE, 0x40, + 0x8E, + 0xF0, + 0x22, + 0xA6, + 0x00, + 0xB8, + 0x05, + 0x8C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunktEXt + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x36, 0x89, 0x8D, 0x56, + 0xA9, 0xC0, + 0x23, 0x49, + 0x90, + 0x5D, + 0xDF, + 0x2B, + 0x38, + 0x23, + 0x8F, + 0xBC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatXMPStruct + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xF1, 0x3C, 0x38, 0x22, + 0x17, 0xED, + 0x2E, 0x4E, + 0xAF, + 0x17, + 0xD8, + 0x5B, + 0x8F, + 0x6B, + 0x30, + 0xD0 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatXMPBag + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5F, 0xCA, 0x3C, 0x83, + 0xB7, 0xDC, + 0x16, 0x45, + 0x80, + 0x6F, + 0x65, + 0x96, + 0xAB, + 0x26, + 0xDC, + 0xE4 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatXMPSeq + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x02, 0xDF, 0xE8, 0x63, + 0x6C, 0xEB, + 0x6C, 0x45, + 0xA2, + 0x24, + 0xB2, + 0x5E, + 0x79, + 0x4F, + 0xD6, + 0x48 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatXMPAlt + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x75, 0xA6, 0x08, 0x7B, + 0xAA, 0x91, + 0x1B, 0x48, + 0xA7, + 0x98, + 0x4D, + 0xA9, + 0x49, + 0x08, + 0x61, + 0x3B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatLSD + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x1E, 0x03, 0x56, 0xE2, + 0x99, 0x62, + 0x29, 0x49, + 0xB9, + 0x8D, + 0x5A, + 0xC8, + 0x84, + 0xAF, + 0xBA, + 0x92 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatIMD + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x86, 0xB0, 0x2B, 0xBD, + 0x52, 0x4D, + 0xDD, 0x48, + 0x96, + 0x77, + 0xDB, + 0x48, + 0x3E, + 0x85, + 0xAE, + 0x8F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatGCE + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xD8, 0xCA, 0x25, 0x2A, + 0xEB, 0xDE, + 0x69, 0x4C, + 0xA7, + 0x88, + 0x0E, + 0xC2, + 0x26, + 0x6D, + 0xCA, + 0xFD + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatAPE + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC2, 0x3D, 0x04, 0x2E, + 0x67, 0xC9, + 0x05, 0x4E, + 0x87, + 0x5E, + 0x61, + 0x8B, + 0xF6, + 0x7E, + 0x85, + 0xC3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatJpegChrominance + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xCF, 0x0D, 0x3D, 0xF7, + 0xC6, 0xCE, + 0x85, 0x4F, + 0x9B, + 0x0E, + 0x1C, + 0x39, + 0x56, + 0xB1, + 0xBE, + 0xF7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatJpegLuminance + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x07, 0x80, 0x90, 0x86, + 0xFC, 0xED, + 0x60, 0x48, + 0x8D, + 0x4B, + 0x4E, + 0xE6, + 0xE8, + 0x3E, + 0x60, + 0x58 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatJpegComment + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x33, 0x5F, 0x0E, 0x22, + 0xD3, 0xAF, + 0x4E, 0x47, + 0x9D, + 0x31, + 0x7D, + 0x4F, + 0xE7, + 0x30, + 0xF5, + 0x57 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatGifComment + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE0, 0xE0, 0xB6, 0xC4, + 0xB4, 0xCF, + 0xD3, 0x4A, + 0xAB, + 0x33, + 0x9A, + 0xAD, + 0x23, + 0x55, + 0xA3, + 0x4A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunkgAMA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xA5, 0x35, 0x09, 0xF0, + 0x5D, 0x1D, + 0xD1, 0x4C, + 0x81, + 0xB2, + 0x93, + 0x24, + 0xD7, + 0xEC, + 0xA7, + 0x81 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunkbKGD + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x71, 0x35, 0x4D, 0xE1, + 0x47, 0x6B, + 0xEA, 0x4D, + 0xB6, + 0x0A, + 0x87, + 0xCE, + 0x0A, + 0x78, + 0xDF, + 0xB7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunkiTXt + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x29, 0xC7, 0xBE, 0xC2, + 0x68, 0x0B, + 0x77, 0x4B, + 0xAA, + 0x0E, + 0x62, + 0x95, + 0xA6, + 0xAC, + 0x18, + 0x14 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunkcHRM + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5B, 0x65, 0xB3, 0x9D, + 0x42, 0x28, + 0xB3, 0x44, + 0x80, + 0x67, + 0x12, + 0xE9, + 0xB3, + 0x75, + 0x55, + 0x6A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunkhIST + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xDA, 0x82, 0x9A, 0xC5, + 0x74, 0xDB, + 0xA4, 0x48, + 0xBD, + 0x6A, + 0xB6, + 0x9C, + 0x49, + 0x31, + 0xEF, + 0x95 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunkiCCP + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xAB, 0x49, 0x43, 0xEB, + 0x85, 0xB6, + 0x0F, 0x45, + 0x91, + 0xB5, + 0xE8, + 0x02, + 0xE8, + 0x92, + 0x53, + 0x6C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunksRGB + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x36, 0xFD, 0x15, 0xC1, + 0x6F, 0xCC, + 0x3F, 0x4E, + 0x83, + 0x63, + 0x52, + 0x4B, + 0x87, + 0xC6, + 0xB0, + 0xD9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatChunktIME + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x2D, 0xAE, 0x00, 0x6B, + 0x4B, 0xE2, + 0x0A, 0x46, + 0x98, + 0xB6, + 0x87, + 0x8B, + 0xD0, + 0x30, + 0x72, + 0xFD + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatDds + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x03, 0x46, 0x06, 0x4A, + 0x33, 0x8C, + 0x60, 0x4E, + 0x9C, + 0x29, + 0x13, + 0x62, + 0x31, + 0x70, + 0x2D, + 0x08 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatHeif + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE1, 0xF3, 0x7E, 0x81, + 0x88, 0x12, + 0xF4, 0x45, + 0xA8, + 0x52, + 0x26, + 0x0D, + 0x9E, + 0x7C, + 0xCE, + 0x83 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatHeifHDR + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8A, 0x8D, 0x8B, 0x56, + 0x65, 0x1E, + 0x8C, 0x43, + 0x89, + 0x68, + 0xD6, + 0x0E, + 0x10, + 0x12, + 0xBE, + 0xB9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatWebpANIM + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xA6, 0xFD, 0xC4, 0x6D, + 0xE6, 0x78, + 0x02, 0x41, + 0xAE, + 0x35, + 0xBC, + 0xFA, + 0x1E, + 0xDC, + 0xC7, + 0x8B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid GUID_MetadataFormatWebpANMF + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xEE, 0x05, 0xC1, 0x43, + 0x3B, 0xB9, + 0xBB, 0x4A, + 0xB0, + 0x03, + 0xA0, + 0x8C, + 0x0D, + 0x87, + 0x04, + 0x71 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICUnknownMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC2, 0x45, 0x97, 0x69, + 0x66, 0x50, + 0x82, 0x4B, + 0xA8, + 0xE3, + 0xD4, + 0x04, + 0x78, + 0xDB, + 0xEC, + 0x8C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICUnknownMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x86, 0xCA, 0x9C, 0xA0, + 0xBA, 0x27, + 0x39, 0x4F, + 0x90, + 0x53, + 0x12, + 0x1F, + 0xA4, + 0xDC, + 0x08, + 0xFC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICApp0MetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xA2, 0x33, 0xC6, 0xF3, + 0xC8, 0x46, + 0x8E, 0x49, + 0x8F, + 0xBB, + 0xCC, + 0x6F, + 0x72, + 0x1B, + 0xBC, + 0xDE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICApp0MetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x33, 0x4B, 0x32, 0x43, + 0x8F, 0xA7, + 0x0F, 0x48, + 0x91, + 0x11, + 0x96, + 0x38, + 0xAA, + 0xCC, + 0xC8, + 0x32 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICApp1MetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x69, 0x60, 0x36, 0xEE, + 0x32, 0x18, + 0x0F, 0x42, + 0xB3, + 0x81, + 0x04, + 0x79, + 0xAD, + 0x06, + 0x6F, + 0x19 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICApp1MetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x13, 0x35, 0xE3, 0xDD, + 0x4E, 0x77, + 0xCD, 0x4B, + 0xAE, + 0x79, + 0x02, + 0xF4, + 0xAD, + 0xFE, + 0x62, + 0xFC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICApp13MetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x19, 0xA9, 0x19, 0x7B, + 0xD6, 0xA9, + 0xE5, 0x49, + 0xBD, + 0x45, + 0x02, + 0xC3, + 0x4E, + 0x4E, + 0x4C, + 0xD5 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICApp13MetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x50, 0x3C, 0x7E, 0xAA, + 0x4C, 0x86, + 0x04, 0x46, + 0xBC, + 0x04, + 0x8B, + 0x0B, + 0x76, + 0xE6, + 0x37, + 0xF6 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIfdMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x56, 0x46, 0x91, 0x8F, + 0x0A, 0x9D, + 0xB2, 0x4E, + 0x90, + 0x19, + 0x0B, + 0xF9, + 0x6D, + 0x8A, + 0x9E, + 0xE6 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIfdMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x28, 0xFC, 0xEB, 0xB1, + 0xBD, 0xC9, + 0xA2, 0x47, + 0x8D, + 0x33, + 0xB9, + 0x48, + 0x76, + 0x97, + 0x77, + 0xA7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICSubIfdMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x09, 0x2F, 0xD4, 0x50, + 0xD1, 0xEC, + 0x41, 0x4B, + 0xB6, + 0x5D, + 0xDA, + 0x1F, + 0xDA, + 0xA7, + 0x56, + 0x63 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICSubIfdMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x86, 0x53, 0xDE, 0x8A, + 0x9B, 0x8E, + 0x4C, 0x4F, + 0xAC, + 0xF2, + 0xF0, + 0x00, + 0x87, + 0x06, + 0xB2, + 0x38 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICExifMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x60, 0x38, 0x40, 0xD9, + 0x7F, 0x29, + 0x49, 0x4A, + 0xBF, + 0x9B, + 0x77, + 0x89, + 0x81, + 0x50, + 0xA4, + 0x42 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICExifMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xDA, 0x4C, 0xA1, 0xC9, + 0x39, 0xC3, + 0x0B, 0x46, + 0x90, + 0x78, + 0xD4, + 0xDE, + 0xBC, + 0xFA, + 0xBE, + 0x91 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGpsMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0B, 0x79, 0x97, 0x36, + 0x3B, 0x22, + 0x4E, 0x48, + 0x99, + 0x25, + 0xC4, + 0x86, + 0x92, + 0x18, + 0xF1, + 0x7A + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGpsMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE4, 0x13, 0x8C, 0xCB, + 0xB5, 0x62, + 0x96, 0x4C, + 0xA4, + 0x8B, + 0x6B, + 0xA6, + 0xAC, + 0xE3, + 0x9C, + 0x76 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICInteropMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x98, 0xB8, 0xC8, 0xB5, + 0x74, 0x00, + 0x9F, 0x45, + 0xB7, + 0x00, + 0x86, + 0x0D, + 0x46, + 0x51, + 0xEA, + 0x14 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICInteropMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x45, 0xC6, 0x2E, 0x12, + 0x7E, 0xCD, + 0xD8, 0x44, + 0xB1, + 0x86, + 0x2C, + 0x8C, + 0x20, + 0xC3, + 0xB5, + 0x0F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICThumbnailMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x59, 0x29, 0x01, 0xFB, + 0xF6, 0xF4, + 0xD7, 0x44, + 0x9D, + 0x09, + 0xDA, + 0xA0, + 0x87, + 0xA9, + 0xDB, + 0x57 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICThumbnailMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0C, 0xB2, 0x49, 0xD0, + 0xD0, 0x5D, + 0xFE, 0x44, + 0xB0, + 0xB3, + 0x8F, + 0x92, + 0xC8, + 0xE6, + 0xD0, + 0x80 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIPTCMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x59, 0x29, 0x01, 0x03, + 0xF6, 0xF4, + 0xD7, 0x44, + 0x9D, + 0x09, + 0xDA, + 0xA0, + 0x87, + 0xA9, + 0xDB, + 0x57 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIPTCMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0C, 0xB2, 0x49, 0x12, + 0xD0, 0x5D, + 0xFE, 0x44, + 0xB0, + 0xB3, + 0x8F, + 0x92, + 0xC8, + 0xE6, + 0xD0, + 0x80 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIRBMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xD7, 0xD3, 0xDC, 0xD4, + 0xC2, 0xB4, + 0xD9, 0x47, + 0xA6, + 0xBF, + 0xB8, + 0x9B, + 0xA3, + 0x96, + 0xA4, + 0xA3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIRBMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x35, 0x19, 0x5C, 0x5C, + 0x35, 0x02, + 0x34, 0x44, + 0x80, + 0xBC, + 0x25, + 0x1B, + 0xC1, + 0xEC, + 0x39, + 0xC6 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WIC8BIMIPTCMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8C, 0x66, 0x10, 0x00, + 0x01, 0x08, + 0xA6, 0x4D, + 0xA4, + 0xA4, + 0x82, + 0x65, + 0x22, + 0xB6, + 0xD2, + 0x8F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WIC8BIMIPTCMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x26, 0x82, 0x10, 0x00, + 0x41, 0xEE, + 0xA2, 0x44, + 0x9E, + 0x9C, + 0x4B, + 0xE4, + 0xD5, + 0xB1, + 0xD2, + 0xCD + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WIC8BIMResolutionInfoMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x7A, 0x13, 0x05, 0x58, + 0x48, 0xE3, + 0x7C, 0x4F, + 0xB3, + 0xCC, + 0x6D, + 0xB9, + 0x96, + 0x5A, + 0x05, + 0x99 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WIC8BIMResolutionInfoMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0E, 0xFE, 0xF2, 0x4F, + 0x4A, 0xE7, + 0x71, 0x4B, + 0x98, + 0xC4, + 0xAB, + 0x7D, + 0xC1, + 0x67, + 0x07, + 0xBA + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WIC8BIMIPTCDigestMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x1E, 0x5F, 0x80, 0x02, + 0xAA, 0xD5, + 0x5B, 0x41, + 0x82, + 0xC5, + 0x61, + 0xC0, + 0x33, + 0xA9, + 0x88, + 0xA6 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WIC8BIMIPTCDigestMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x2B, 0xE6, 0xB5, 0x2D, + 0x67, 0x0D, + 0x5F, 0x49, + 0x8F, + 0x9D, + 0xC2, + 0xF0, + 0x18, + 0x86, + 0x47, + 0xAC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngTextMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xCC, 0xAF, 0x59, 0x4B, + 0xC3, 0xB8, + 0x8A, 0x40, + 0xB6, + 0x70, + 0x89, + 0xE5, + 0xFA, + 0xB6, + 0xFD, + 0xA7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngTextMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xB9, 0xAF, 0xEB, 0xB5, + 0x3E, 0x25, + 0x72, 0x4A, + 0xA7, + 0x44, + 0x07, + 0x62, + 0xD2, + 0x68, + 0x56, + 0x83 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xDF, 0x24, 0xB6, 0x72, + 0x11, 0xAE, + 0x48, 0x49, + 0xA6, + 0x5C, + 0x35, + 0x1E, + 0xB0, + 0x82, + 0x94, + 0x19 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x4E, 0xE1, 0x65, 0x17, + 0xD4, 0x1B, + 0x2E, 0x46, + 0xB6, + 0xB1, + 0x59, + 0x0B, + 0xF1, + 0x26, + 0x2A, + 0xC6 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPStructMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x9A, 0x0D, 0xB9, 0x01, + 0x09, 0x82, + 0xF7, 0x47, + 0x9C, + 0x52, + 0xE1, + 0x24, + 0x4B, + 0xF5, + 0x0C, + 0xED + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPStructMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x93, 0x1F, 0xC2, 0x22, + 0xDB, 0x7D, + 0x1C, 0x41, + 0x9B, + 0x17, + 0xC5, + 0xB7, + 0xBD, + 0x06, + 0x4A, + 0xBC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPBagMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x30, 0x9A, 0xE7, 0xE7, + 0x2C, 0x4F, + 0xAB, 0x4F, + 0x8D, + 0x00, + 0x39, + 0x4F, + 0x2D, + 0x6B, + 0xBE, + 0xBE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPBagMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x8C, 0x2C, 0x82, 0xED, + 0xBE, 0xD6, + 0x01, 0x43, + 0xA6, + 0x31, + 0x0E, + 0x14, + 0x16, + 0xBA, + 0xD2, + 0x8F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPSeqMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x53, 0xE7, 0x12, 0x7F, + 0x71, 0xFC, + 0xD7, 0x43, + 0xA5, + 0x1D, + 0x92, + 0xF3, + 0x59, + 0x77, + 0xAB, + 0xB5 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPSeqMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xDE, 0xD1, 0x68, 0x6D, + 0x32, 0xD4, + 0x0F, 0x4B, + 0x92, + 0x3A, + 0x09, + 0x11, + 0x83, + 0xA9, + 0xBD, + 0xA7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPAltMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC2, 0xDC, 0x94, 0xAA, + 0xB0, 0xB8, + 0x98, 0x48, + 0xB8, + 0x35, + 0x00, + 0x0A, + 0xAB, + 0xD7, + 0x43, + 0x93 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICXMPAltMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x6C, 0x2A, 0x6C, 0x07, + 0x8F, 0xF7, + 0x46, 0x4C, + 0xA7, + 0x23, + 0x35, + 0x83, + 0xE7, + 0x08, + 0x76, + 0xEA + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICLSDMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x93, 0x07, 0x07, 0x41, + 0xE4, 0x59, + 0x9A, 0x47, + 0xA1, + 0xF7, + 0x95, + 0x4A, + 0xDC, + 0x2E, + 0xF5, + 0xFC + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICLSDMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xE7, 0x37, 0xC0, 0x73, + 0xD9, 0xE5, + 0x54, 0x49, + 0x87, + 0x6A, + 0x6D, + 0xA8, + 0x1D, + 0x6E, + 0x57, + 0x68 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGCEMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5D, 0x34, 0x2E, 0xB9, + 0x2D, 0xF5, + 0xF3, 0x41, + 0xB5, + 0x62, + 0x08, + 0x1B, + 0xC7, + 0x72, + 0xE3, + 0xB9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGCEMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x76, 0xDC, 0x95, 0xAF, + 0xB2, 0x16, + 0xF4, 0x47, + 0xB3, + 0xEA, + 0x3C, + 0x31, + 0x79, + 0x66, + 0x93, + 0xE7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIMDMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x67, 0xA2, 0x47, 0x74, + 0x15, 0x00, + 0xC8, 0x42, + 0xA8, + 0xF1, + 0xFB, + 0x3B, + 0x94, + 0xC6, + 0x83, + 0x61 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICIMDMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x1F, 0x07, 0x89, 0x8C, + 0x2E, 0x45, + 0x95, 0x4E, + 0x96, + 0x82, + 0x9D, + 0x10, + 0x24, + 0x62, + 0x71, + 0x72 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICAPEMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3A, 0xB9, 0x67, 0x17, + 0x21, 0xB0, + 0xEA, 0x44, + 0x92, + 0x0F, + 0x86, + 0x3C, + 0x11, + 0xF4, + 0xF7, + 0x68 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICAPEMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xCA, 0xDF, 0x6E, 0xBD, + 0x90, 0x28, + 0x2F, 0x48, + 0xB2, + 0x33, + 0x8D, + 0x73, + 0x39, + 0xA1, + 0xCF, + 0x8D + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegChrominanceMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x4B, 0x90, 0xB1, 0x50, + 0x8F, 0xF2, + 0x74, 0x45, + 0x93, + 0xF4, + 0x0B, + 0xAD, + 0xE8, + 0x2C, + 0x69, + 0xE9 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegChrominanceMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xF0, 0x66, 0xF5, 0x3F, + 0x6B, 0x6E, + 0xD4, 0x49, + 0x96, + 0xE6, + 0xB7, + 0x88, + 0x86, + 0x69, + 0x2C, + 0x62 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegLuminanceMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x88, 0x2F, 0x6F, 0x35, + 0xA6, 0x05, + 0x28, 0x47, + 0xB9, + 0xA4, + 0x1B, + 0xFB, + 0xCE, + 0x04, + 0xD8, + 0x38 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegLuminanceMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xBC, 0x3A, 0x58, 0x1D, + 0x0E, 0x8A, + 0x57, 0x46, + 0x99, + 0x82, + 0xA3, + 0x80, + 0xCA, + 0x58, + 0xFB, + 0x4B + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegCommentMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x7C, 0x34, 0x66, 0x9F, + 0xC4, 0x60, + 0x4D, 0x4C, + 0xAB, + 0x58, + 0xD2, + 0x35, + 0x86, + 0x85, + 0xF6, + 0x07 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICJpegCommentMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x6F, 0x23, 0x73, 0xE5, + 0xB1, 0x55, + 0xDA, 0x4E, + 0x81, + 0xEA, + 0x9F, + 0x65, + 0xDB, + 0x02, + 0x90, + 0xD3 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGifCommentMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3B, 0x7D, 0x55, 0x32, + 0xDC, 0x69, + 0x95, 0x4F, + 0x83, + 0x6E, + 0xF5, + 0x97, + 0x2B, + 0x2F, + 0x61, + 0x59 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICGifCommentMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xFC, 0x97, 0x27, 0xA0, + 0xAE, 0xC4, + 0x8C, 0x41, + 0xAF, + 0x95, + 0xE6, + 0x37, + 0xC7, + 0xEA, + 0xD2, + 0xA1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngGamaMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x39, 0xCA, 0x92, 0x36, + 0x82, 0xE0, + 0x50, 0x43, + 0x9E, + 0x1F, + 0x37, + 0x04, + 0xCB, + 0x08, + 0x3C, + 0xD5 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngGamaMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x13, 0x6D, 0x03, 0xFF, + 0x4B, 0x5D, + 0xDD, 0x46, + 0xB1, + 0x0F, + 0x10, + 0x66, + 0x93, + 0xD9, + 0xFE, + 0x4F + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngBkgdMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xA6, 0xA4, 0xE7, 0x0C, + 0xE8, 0x03, + 0x60, 0x4A, + 0x9D, + 0x15, + 0x28, + 0x2E, + 0xF3, + 0x2E, + 0xE7, + 0xDA + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngBkgdMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xFD, 0xF2, 0xE3, 0x68, + 0xAE, 0x31, + 0x41, 0x44, + 0xBB, + 0x6A, + 0xFD, + 0x70, + 0x47, + 0x52, + 0x5F, + 0x90 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngItxtMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xFA, 0xB2, 0xBF, 0xAA, + 0x1E, 0x3E, + 0x8F, 0x4A, + 0x89, + 0x77, + 0x55, + 0x56, + 0xFB, + 0x94, + 0xEA, + 0x23 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngItxtMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x19, 0x97, 0x87, 0x31, + 0x51, 0xE7, + 0xF8, 0x4D, + 0x98, + 0x1D, + 0x68, + 0xDF, + 0xF6, + 0x77, + 0x04, + 0xED + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngChrmMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x36, 0x5F, 0x0B, 0xF9, + 0x7B, 0x36, + 0x2A, 0x40, + 0x9D, + 0xD1, + 0xBC, + 0x0F, + 0xD5, + 0x9D, + 0x8F, + 0x62 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngChrmMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xEB, 0xE3, 0x3C, 0xE2, + 0x08, 0x56, + 0x83, 0x4E, + 0xBC, + 0xEF, + 0x27, + 0xB1, + 0x98, + 0x7E, + 0x51, + 0xD7 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngHistMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xB7, 0x0B, 0x7A, 0x87, + 0x13, 0xA3, + 0x91, 0x44, + 0x87, + 0xB5, + 0x2E, + 0x6D, + 0x05, + 0x94, + 0xF5, + 0x20 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngHistMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x49, 0xE7, 0x03, 0x8A, + 0x2E, 0x67, + 0x6E, 0x44, + 0xBF, + 0x1F, + 0x2C, + 0x11, + 0xD2, + 0x33, + 0xB6, + 0xFF + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngIccpMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3B, 0xE6, 0xD3, 0xF5, + 0x0F, 0xCB, + 0x28, 0x46, + 0xA4, + 0x78, + 0x6D, + 0x82, + 0x44, + 0xBE, + 0x36, + 0xB1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngIccpMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x5F, 0x1E, 0x67, 0x16, + 0xE6, 0x0C, + 0xC4, 0x4C, + 0x97, + 0x68, + 0xE8, + 0x9F, + 0xE5, + 0x01, + 0x8A, + 0xDE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngSrgbMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x0C, 0x36, 0x40, 0xFB, + 0x7E, 0x54, + 0x56, 0x49, + 0xA3, + 0xB9, + 0xD4, + 0x41, + 0x88, + 0x59, + 0xBA, + 0x66 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngSrgbMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xC6, 0x35, 0xEE, 0xA6, + 0xEC, 0x87, + 0xDF, 0x47, + 0x9F, + 0x22, + 0x1D, + 0x5A, + 0xAD, + 0x84, + 0x0C, + 0x82 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngTimeMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x02, 0xDF, 0x4E, 0xD9, + 0xE5, 0xEF, + 0x0D, 0x4F, + 0x85, + 0xC8, + 0xF5, + 0xA6, + 0x8B, + 0x30, + 0x00, + 0xB1 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICPngTimeMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x00, 0x84, 0xB7, 0x1A, + 0xA3, 0xB5, + 0x91, 0x4D, + 0x8A, + 0xCE, + 0x33, + 0xFC, + 0xD1, + 0x49, + 0x9B, + 0xE6 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICDdsMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xCA, 0x88, 0x6C, 0x27, + 0x33, 0x75, + 0x86, 0x4A, + 0xB6, + 0x76, + 0x66, + 0xB3, + 0x60, + 0x80, + 0xD4, + 0x84 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICDdsMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0xBD, 0x8B, 0x68, 0xFD, + 0xED, 0x31, + 0xB7, 0x4D, + 0xA7, + 0x23, + 0x93, + 0x49, + 0x27, + 0xD3, + 0x83, + 0x67 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICHeifMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3F, 0xFC, 0xDD, 0xAC, + 0xEC, 0x85, + 0xBC, 0x41, + 0xBD, + 0xEF, + 0x1B, + 0xC2, + 0x62, + 0xE4, + 0xDB, + 0x05 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICHeifMetadataWriter + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x79, 0x5E, 0xE4, 0x3A, + 0xBC, 0x40, + 0x01, 0x44, + 0xAC, + 0xE5, + 0xDD, + 0x3C, + 0xB1, + 0x6E, + 0x6A, + 0xFE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICHeifHDRMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x3D, 0xDE, 0x38, 0x24, + 0xD9, 0x94, + 0xE8, 0x4B, + 0x84, + 0xA8, + 0x4D, + 0xE9, + 0x5A, + 0x57, + 0x5E, + 0x75 + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICWebpAnimMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x11, 0x99, 0x6F, 0x07, + 0x48, 0xA3, + 0x5C, 0x46, + 0xA8, + 0x07, + 0xA2, + 0x52, + 0xF3, + 0xF2, + 0xD3, + 0xDE + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } + + public static ref readonly Guid CLSID_WICWebpAnmfMetadataReader + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + ReadOnlySpan data = new byte[] { + 0x03, 0x0B, 0xA1, 0x85, + 0xF6, 0xC9, + 0x9F, 0x43, + 0xBE, + 0x5E, + 0xC0, + 0xFB, + 0xEF, + 0x67, + 0x80, + 0x7C + }; + + Debug.Assert(data.Length == Unsafe.SizeOf()); + return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); + } + } } diff --git a/src/Vortice.Win32/Generated/Graphics/Imaging/Imaging.xml b/src/Vortice.Win32/Generated/Graphics/Imaging/Imaging.xml deleted file mode 100644 index f474f7c..0000000 --- a/src/Vortice.Win32/Generated/Graphics/Imaging/Imaging.xml +++ /dev/null @@ -1,4482 +0,0 @@ - - - - - Creates a new instance of a query writer. - Microsoft Docs: - The GUID for the desired metadata format. - The GUID for the preferred metadata writer vendor. Use NULL if no preferred vendor. - When this method returns, contains a pointer to a new IWICMetadataQueryWriter. - - - - - Creates a new instance of the fast metadata encoder based on the given image frame. - Microsoft Docs: - The IWICBitmapFrameDecode to create the IWICFastMetadataEncoder from. - When this method returns, contains a pointer to a new fast metadata encoder. - - - - - Retrieves the image's container format. - Microsoft Docs: - A pointer that receives the image's container format GUID. - - - - - Copies pixels into the destination planes. Configured by the supplied input parameters. - Microsoft Docs: - The source rectangle of pixels to copy. - The width to scale the source bitmap. This parameter must be equal to a value obtainable through IWICPlanarBitmapSourceTransform:: DoesSupportTransform. - The height to scale the source bitmap. This parameter must be equal to a value obtainable through IWICPlanarBitmapSourceTransform:: DoesSupportTransform. - The desired rotation or flip to perform prior to the pixel copy. A rotate can be combined with a flip horizontal or a flip vertical, see WICBitmapTransformOptions. - Used to specify additional configuration options for the transform. See WICPlanarOptions for more detail. - -WIC JPEG Decoder: -WICPlanarOptionsPreserveSubsampling can be specified to retain the subsampling ratios when downscaling. By default, the JPEG decoder attempts to preserve quality by downscaling only the Y plane in some cases, changing the image to 4:4:4 chroma subsampling. - Specifies the pixel format and output buffer for each component plane. The number of planes and pixel format of each plane must match values obtainable through IWICPlanarBitmapSourceTransform::DoesSupportTransform. - The number of component planes specified by the pDstPlanes parameter. - - - - - Writes metadata into a given stream. - Microsoft Docs: - The container format GUID. - The metadata writer to write metadata to the stream. - The WICPersistOptions options to use when writing the metadata. - A pointer to the stream in which to write the metadata. - - - - - Exposes methods that provide access to all of the codec's top level metadata blocks. - Microsoft Docs: - - - - - Retrieves the component's WICComponentType. - Microsoft Docs: - A pointer that receives the WICComponentType. - - - - - Specifies the JPEG YCrCB subsampling options. - Microsoft Docs: - - - - The default subsampling option. - - - Subsampling option that uses both horizontal and vertical decimation. - - - Subsampling option that uses horizontal decimation . - - - Subsampling option that uses no decimation. - - - Subsampling option that uses 2x vertical downsampling only. This option is only available in Windows 8.1 and later. - - - - Retrieves a copy of the DC Huffman table for the specified scan and table. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The index of the DC Huffman table to retrieve. - A pointer that receives the table data. This parameter must not be NULL. - - - - - Sets the physical resolution of the output image. - Microsoft Docs: - The horizontal resolution value. - The vertical resolution value. - - - - - Exposes methods for writing compressed JPEG scan data directly to the WIC encoder's output stream. Also provides access to the Huffman and quantization tables. - Microsoft Docs: - - - - - Specifies the rotation capabilities of the codec. - Microsoft Docs: - - - - Rotation is not supported. - - - Set operations for rotation is not supported. - - - 90 degree rotations are supported. - - - All rotation angles are supported. - - - - Retrieves the container GUID associated with the codec. - Microsoft Docs: - Receives the container GUID. - - - - - Represents a JPEG frame header. - Microsoft Docs: - - - - The width of the JPEG frame. - - - The height of the JPEG frame. - - - The transfer matrix of the JPEG frame. - - - The scan type of the JPEG frame. - - - The number of components in the frame. - - - The component identifiers. - - - The sample factors. Use one of the following constants, described in IWICJpegFrameDecode Constants. - -
    -
  • WIC_JPEG_SAMPLE_FACTORS_ONE
  • -
  • WIC_JPEG_SAMPLE_FACTORS_THREE_420
  • -
  • WIC_JPEG_SAMPLE_FACTORS_THREE_422
  • -
  • WIC_JPEG_SAMPLE_FACTORS_THREE_440
  • -
  • WIC_JPEG_SAMPLE_FACTORS_THREE_444
  • -
-
- - The format of the quantization table indices. Use one of the following constants, described in IWICJpegFrameDecode Constants. - -
    -
  • WIC_JPEG_QUANTIZATION_BASELINE_ONE
  • -
  • WIC_JPEG_QUANTIZATION_BASELINE_THREE
  • -
-
- - - Sets the global preview for the image. - Microsoft Docs: - The IWICBitmapSource to use as the global preview. - - - - - Creates a new instance of the IWICBitmapEncoder class. - Microsoft Docs: - The GUID for the desired container format. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
-
GUID_ContainerFormatBmp
-
-
-The BMP container format GUID. - -
-
-
GUID_ContainerFormatPng
-
-
-The PNG container format GUID. - -
-
-
GUID_ContainerFormatIco
-
-
-The ICO container format GUID. - -
-
-
GUID_ContainerFormatJpeg
-
-
-The JPEG container format GUID. - -
-
-
GUID_ContainerFormatTiff
-
-
-The TIFF container format GUID. - -
-
-
GUID_ContainerFormatGif
-
-
-The GIF container format GUID. - -
-
-
GUID_ContainerFormatWmp
-
-
-The HD Photo container format GUID. - -
- The GUID for the preferred encoder vendor. - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
-
NULL
-
-
-No preferred codec vendor. - -
-
-
GUID_VendorMicrosoft
-
-
-Prefer to use Microsoft encoder. - -
-
-
GUID_VendorMicrosoftBuiltIn
-
-
-Prefer to use the native Microsoft encoder. - -
- A pointer that receives a pointer to a new IWICBitmapEncoder. -
-
- - - Exposes methods for setting or removing metadata blocks and items to an encoder or its image frames using a metadata query expression. - Microsoft Docs: - - - - - Gets the tint value of the raw image. - Microsoft Docs: - A pointer that receives the tint value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for sharpness is -1.0 through +1.0. The -1.0 lower limit represents a full green bias to the image, while the 1.0 upper limit represents a full magenta bias. - - - - - Creates a new IWICFormatConverter instance. - Microsoft Docs: - A pointer that receives a new IWICFormatConverter instance. - - - - - Defines raw codec capabilites. - Microsoft Docs: - - - - Size of the WICRawCapabilitiesInfo structure. - - - The codec's major version. - - - The codec's minor version. - - - The WICRawCapabilities of exposure compensation support. - - - The WICRawCapabilities of contrast support. - - - The WICRawCapabilities of RGB white point support. - - - The WICRawCapabilities of WICNamedWhitePoint support. - - - The WICNamedWhitePoint mask. - - - The WICRawCapabilities of kelvin white point support. - - - The WICRawCapabilities of gamma support. - - - The WICRawCapabilities of tint support. - - - The WICRawCapabilities of saturation support. - - - The WICRawCapabilities of sharpness support. - - - The WICRawCapabilities of noise reduction support. - - - The WICRawCapabilities of destination color profile support. - - - The WICRawCapabilities of tone curve support. - - - The WICRawRotationCapabilities of rotation support. - - - The WICRawCapabilities of WICRawRenderMode support. - - - - Creates a new instance of an IWICBitmapScaler. - Microsoft Docs: - A pointer that receives a pointer to a new IWICBitmapScaler. - - - - - Retrieves the device models that support the metadata handler. - Microsoft Docs: - The length of the wzDeviceModels buffer. - Pointer that receives the device models supported by the metadata handler. - The actual length needed to retrieve the device models. - - - - - Specifies the animation frame properties of a WebP image. - Microsoft Docs: - - - - The time to wait before displaying the next frame, in milliseconds. - - - - Copies scan-line data from a caller-supplied buffer to the IWICBitmapFrameEncode object. - Microsoft Docs: - The number of lines to encode. - The stride of the image pixels. - The size of the pixel buffer. - A pointer to the pixel buffer. - - - - - Retrieves the component's specification version. - Microsoft Docs: - The size of the wzSpecVersion buffer. - When this method returns, contain a culture invarient string of the component's specification version. The version form is NN.NN.NN.NN. - A pointer that receives the actual length of the component's specification version. The specification version is optional; if a value is not specified by the component, the length returned is 0. - - - - - Retrieves a metadata query writer for the encoder. - Microsoft Docs: - When this method returns, contains a pointer to the encoder's metadata query writer. - - - - - Creates a new instance of the IWICBitmapDecoder class based on the given file. - Microsoft Docs: - A pointer to a null-terminated string that specifies the name of an object to create or open. - The GUID for the preferred decoder vendor. Use NULL if no preferred vendor. - The access to the object, which can be read, write, or both. - - - - - - - - - - - - - - - -
ValueMeaning
-
-
GENERIC_READ
-
-
-Read access. - -
-
-
GENERIC_WRITE
-
-
-Write access. - -
-  - -For more information, see Generic Access Rights. - The WICDecodeOptions to use when creating the decoder. - A pointer that receives a pointer to the new IWICBitmapDecoder. -
-
- - - Exposes methods for obtaining information about and controlling progressive decoding. - Microsoft Docs: - - - - - Retrieves the color manangement version number the codec supports. - Microsoft Docs: - The size of the version buffer. Use 0 on first call to determine needed buffer size. - Receives the color management version number. Use NULL on first call to determine needed buffer size. - The actual buffer size needed to retrieve the full color management version number. - - - - - Allows planar component image pixels to be written to an encoder. - Microsoft Docs: - - - - - Specifies the animation properties of a WebP image. - Microsoft Docs: - - - - The number of times the animation loops. A value of 0 indicates that the animation will loop infinitely. - - - - Returns a IWICBitmapSource that is backed by the pixels of a Windows Graphics Device Interface (GDI) section handle. - Microsoft Docs: - The width of the bitmap pixels. - The height of the bitmap pixels. - The pixel format of the bitmap. - The section handle. This is a file mapping object handle returned by the CreateFileMapping function. - The byte count of each scanline. - The offset into the section. - A pointer that receives the bitmap. - - - - - Specifies the Portable Network Graphics (PNG) background (bKGD) chunk metadata properties. - Microsoft Docs: - - - - Indicates the background color. There are three possible types, depending on the image's pixel format. - - - - Exposes methods that provide basic information about the registered metadata handler. - Microsoft Docs: - - - - - Specifies the Portable Network Graphics (PNG) gAMA chunk metadata properties. - Microsoft Docs: - - - - [VT_UI4] Indicates the gamma value. - - - - Specifies the application extension metadata properties for a Graphics Interchange Format (GIF) image. - Microsoft Docs: - - - - [VT_UI1 | VT_VECTOR] Indicates a string that identifies the application. - - - [VT_UI1 \| VT_VECTOR] Indicates data that is exposed by the application. - - - - Exposes methods that produce a clipped version of the input bitmap for a specified rectangular region of interest. - Microsoft Docs: - - - - - Exposes methods that provide information about a pixel format converter. - Microsoft Docs: - - - - - Retrieves information about which capabilities are supported for a raw image. - Microsoft Docs: - A pointer that receives WICRawCapabilitiesInfo that provides the capabilities supported by the raw image. - - - - - Represents an IWICBitmapSource that converts the image data from one pixel format to another, handling dithering and halftoning to indexed formats, palette translation and alpha thresholding. - Microsoft Docs: - - - - - Retrieves the current path relative to the root metadata block. - Microsoft Docs: - The length of the wzNamespace buffer. - Pointer that receives the current namespace location. - The actual buffer length that was needed to retrieve the current namespace location. - - - - - Gets the pixel format GUID. - Microsoft Docs: - Pointer that receives the pixel format GUID. - - - - - Skips to given number of objects. - Microsoft Docs: - The number of objects to skip. - - - - - Sets the metadata item to the specified index. - Microsoft Docs: - The index to place the metadata item. - Pointer to the schema property of the metadata item. - Pointer to the id property of the metadata item. - Pointer to the metadata value to set at the given index. - - - - - Retrieves a value indicating whether the codec supports lossless formats. - Microsoft Docs: - Receives TRUE if the codec supports lossless formats; otherwise, FALSE. - - - - - Retrieves a comma delimited sequence of mime types associated with the codec. - Microsoft Docs: - The size of the mime types buffer. Use 0 on first call to determine needed buffer size. - Receives the mime types associated with the codec. Use NULL on first call to determine needed buffer size. - The actual buffer size needed to retrieve all mime types associated with the codec. - - - - - Creates a new instance of the IWICColorContext class. - Microsoft Docs: - A pointer that receives a pointer to a new IWICColorContext. - - - - - Initialize the palette based on a given palette. - Microsoft Docs: - Pointer to the source palette. - - - - - Specifies the render intent of the next CopyPixels call. - Microsoft Docs: - - - - Use speed priority mode. - - - Use normal priority mode. Balance of speed and quality. - - - Use best quality mode. - - - - Retrieves the encoder's container format. - Microsoft Docs: - A pointer that receives the encoder's container format GUID. - - - - - Initializes the bitmap scaler with the provided parameters. - Microsoft Docs: - The input bitmap source. - The destination width. - The desination height. - The WICBitmapInterpolationMode to use when scaling. - - - - - Determines if the source pixel format can be converted to the destination pixel format. - Microsoft Docs: - The source pixel format. - The destionation pixel format. - A pointer that receives a value indicating whether the source pixel format can be converted to the destination pixel format. - - - - - Encodes ID2D1Image interfaces to an IWICBitmapEncoder. - Microsoft Docs: - - - - - Provides access to a single frame of DDS image data in its native DXGI_FORMAT form, as well as information about the image data. - Microsoft Docs: - - - - - Exposes methods that provide access to underlining metadata content. This interface is implemented by independent software vendors (ISVs) to create new metadata readers. - Microsoft Docs: - - - - - Gets an enumerator of all metadata items at the current relative location within the metadata hierarchy. - Microsoft Docs: - A pointer to a variable that receives a pointer to the IEnumString interface for the enumerator that contains query strings that can be used in the current IWICMetadataQueryReader. - - - - - Retrieves the Exchangeable Image File (EXIF) color space color context. - Microsoft Docs: - A pointer that receives the EXIF color space color context. - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
-
1
-
-
-A sRGB color space. - -
-
-
2
-
-
-An Adobe RGB color space. - -
-
-
3 through 65534
-
-
-Unused. - -
-
-
- - - Sets the current WICRawRenderMode. - Microsoft Docs: - The render mode to use. - - - - - Sets the desired gamma value. - Microsoft Docs: - The desired gamma value. - - - - - Exposes methods used to create components for the Windows Imaging Component (WIC) such as decoders, encoders and pixel format converters. - Microsoft Docs: - - - - - Exposes methods that provide basic information about the registered metadata writer. - Microsoft Docs: - - - - - Retrieves the metadata query reader from the decoder. - Microsoft Docs: - Receives a pointer to the decoder's IWICMetadataQueryReader. - - - - - Creates a IWICMetadataQueryReader from the given IWICMetadataBlockReader. - Microsoft Docs: - Pointer to the block reader to base the query reader on. - A pointer that receives a pointer to the new metadata query reader. - - - - - Writes lines from the source planes to the encoded format. - Microsoft Docs: - Specifies an array of IWICBitmapSource that represent image planes. - The number of component planes specified by the planes parameter. - The source rectangle of pixels to encode from the IWICBitmapSource planes. Null indicates the entire source. The source rect width must match the width set through SetSize. Repeated WriteSource calls can be made as long as the total accumulated source rect height is the same as set through SetSize. - - - - - Gets the number of levels of progressive decoding supported by the CODEC. - Microsoft Docs: - Indicates the number of levels supported by the CODEC. - - - - - Specifies the type of palette used for an indexed image format. - Microsoft Docs: - - - - An arbitrary custom palette provided by caller. - - - An optimal palette generated using a median-cut algorithm. Derived from the colors in an image. - - - A black and white palette. - - - A palette that has its 8-color on-off primaries and the 16 system colors added. With duplicates removed, 16 colors are available. - - - A palette that has 3 intensity levels of each primary: 27-color on-off primaries and the 16 system colors added. With duplicates removed, 35 colors are available. - - - A palette that has 4 intensity levels of each primary: 64-color on-off primaries and the 16 system colors added. With duplicates removed, 72 colors are available. - - - A palette that has 5 intensity levels of each primary: 125-color on-off primaries and the 16 system colors added. With duplicates removed, 133 colors are available. - - - A palette that has 6 intensity levels of each primary: 216-color on-off primaries and the 16 system colors added. With duplicates removed, 224 colors are available. This is the same as WICBitmapPaletteFixedHalftoneWeb. - - - A palette that has 6 intensity levels of each primary: 216-color on-off primaries and the 16 system colors added. With duplicates removed, 224 colors are available. This is the same as WICBitmapPaletteTypeFixedHalftone216. - - - A palette that has its 252-color on-off primaries and the 16 system colors added. With duplicates removed, 256 colors are available. - - - A palette that has its 256-color on-off primaries and the 16 system colors added. With duplicates removed, 256 colors are available. - - - A palette that has 4 shades of gray. - - - A palette that has 16 shades of gray. - - - A palette that has 256 shades of gray. - - - - Initializes the bitmap flip rotator with the provided parameters. - Microsoft Docs: - The input bitmap source. - The WICBitmapTransformOptions to flip or rotate the image. - - - - - Creates a new instance of a query writer based on the given query reader. The query writer will be pre-populated with metadata from the query reader. - Microsoft Docs: - The IWICMetadataQueryReader to create the IWICMetadataQueryWriter from. - The GUID for the preferred metadata writer vendor. Use NULL if no preferred vendor. - When this method returns, contains a pointer to a new metadata writer. - - - - - Specifies metadata creation options. - Microsoft Docs: - - - - The default metadata creation options. The default value is WICMetadataCreationAllowUnknown. - - - Allow unknown metadata creation. - - - Fail on unknown metadata creation. - - - The WICMetadataCreationOptions mask. - - - - Determines if the handler requires a full stream. - Microsoft Docs: - Pointer that receives TRUE if a full stream is required; otherwise, FALSE. - - - - - Creates a new instance of the fast metadata encoder based on the given IWICBitmapDecoder. - Microsoft Docs: - The decoder to create the fast metadata encoder from. - When this method returns, contains a pointer to the new IWICFastMetadataEncoder. - - - - - Defines methods for decoding individual image frames of an encoded file. - Microsoft Docs: - - - - - Sets the saturation value of the raw image. - Microsoft Docs: - The saturation value of the raw image. The value range for saturation is 0.0 through 1.0. A value of 0.0 represents an image with a fully de-saturated image, while a value of 1.0 represents the highest amount of saturation that can be applied. - - - - - Gets the metadata handler info associated with the reader. - Microsoft Docs: - Pointer that receives a pointer to the IWICMetadataHandlerInfo. - - - - - Provides access to the stride value for the memory. - Microsoft Docs: - - - - - - Allows a format converter to be initialized with a planar source. - Microsoft Docs: - - - - - Sets the named white point of the raw file. - Microsoft Docs: - A bitwise combination of the enumeration values. - - - - - Exposes methods that provide information about an encoder. - Microsoft Docs: - - - - - Retrieves a metadata query writer for fast metadata encoding. - Microsoft Docs: - When this method returns, contains a pointer to the fast metadata encoder's metadata query writer. - - - - - Initializes the encoder with an IStream which tells the encoder where to encode the bits. - Microsoft Docs: - The output stream. - The WICBitmapEncoderCacheOption used on initialization. - - - - - Specifies the capability support of a raw image. - Microsoft Docs: - - - - The capability is not supported. - - - The capability supports only get operations. - - - The capability supports get and set operations. - - - - Specifies the comment extension metadata properties for a Graphics Interchange Format (GIF) image. - Microsoft Docs: - - - - [VT_LPSTR] Indicates the comment text. - - - - Represents a resized version of the input bitmap using a resampling or filtering algorithm. - Microsoft Docs: - - - - - Determines if a stream contains a metadata item pattern. - Microsoft Docs: - The container format of the metadata item. - The stream to search for the metadata pattern. - Pointer that receives TRUE if the stream contains the pattern; otherwise, FALSE. - - - - - Initializes the color context using an Exchangeable Image File (EXIF) color space. - Microsoft Docs: - The value of the EXIF color space. - - - - - - - - - - - - - - -
ValueMeaning
-
-
1
-
-
-A sRGB color space. - -
-
-
2
-
-
-An Adobe RGB color space. - -
-
-
- - - Indicates whether the palette contains an entry that is non-opaque (that is, an entry with an alpha that is less than 1). - Microsoft Docs: - Pointer that receives TRUE if the palette contains a transparent color; otherwise, FALSE. - - - - - Requests pixel data as it is natively stored within the DDS file. - Microsoft Docs: - The rectangle to copy from the source. A NULL value specifies the entire texture. - -If the texture uses a block-compressed DXGI_FORMAT, all values of the rectangle are expressed in number of blocks, not pixels. - The stride, in bytes, of the destination buffer. This represents the number of bytes from the buffer pointer to the next row of data. If the texture uses a block-compressed DXGI_FORMAT, a "row of data" is defined as a row of blocks which contains multiple pixel scanlines. - The size, in bytes, of the destination buffer. - A pointer to the destination buffer. - - - - - Sets the tone curve for the raw image. - Microsoft Docs: - The size of the pToneCurve structure. - The desired tone curve. - - - - - Creates a IWICMetadataQueryWriter from the given IWICMetadataBlockWriter. - Microsoft Docs: - Pointer to the metadata block reader to base the metadata query writer on. - A pointer that receives a pointer to the new metadata query writer. - - - - - Retrieves a list of GUIDs that signify which pixel formats the converter supports. - Microsoft Docs: - The size of the pPixelFormatGUIDs array. - Pointer to a GUID array that receives the pixel formats the converter supports. - The actual array size needed to retrieve all pixel formats supported by the converter. - - - - - Represents a metadata pattern. - Microsoft Docs: - - - - The position of the pattern. - - - The length of the pattern. - - - Pointer to the pattern. - - - Pointer to the pattern mask. - - - The offset location of the pattern. - - - - Exposes methods that represent a decoder. - Microsoft Docs: - - - - - Gets the metadata patterns associated with the metadata reader. - Microsoft Docs: - The cointainer format GUID. - The size, in bytes, of the pPattern buffer. - Pointer that receives the metadata patterns. - Pointer that receives the number of metadata patterns. - Pointer that receives the size, in bytes, needed to obtain the metadata patterns. - - - - - Specifies the Portable Network Graphics (PNG) cHRM chunk metadata properties for CIE XYZ chromaticity. - Microsoft Docs: - - - - [VT_UI4] Indicates the whitepoint x value ratio. - - - [VT_UI4] Indicates the whitepoint y value ratio. - - - [VT_UI4] Indicates the red x value ratio. - - - [VT_UI4] Indicates the red y value ratio. - - - [VT_UI4] Indicates the green x value ratio. - - - [VT_UI4] Indicates the green y value ratio. - - - [VT_UI4] Indicates the blue x value ratio. - - - [VT_UI4] Indicates the blue y value ratio. - - - - IWICProgressCallback interface is documented only for compliance; its use is not recommended and may be altered or unavailable in the future. Instead, and use RegisterProgressNotification. - Microsoft Docs: - - - - - Gets the bits per pixel (BPP) of the pixel format. - Microsoft Docs: - Pointer that receives the BPP of the pixel format. - - - - - Returns a IWICBitmapSource that is backed by the pixels of a Windows Graphics Device Interface (GDI) section handle. - Microsoft Docs: - The width of the bitmap pixels. - The height of the bitmap pixels. - The pixel format of the bitmap. - The section handle. This is a file mapping object handle returned by the CreateFileMapping function. - The byte count of each scanline. - The offset into the section. - The desired access level. - A pointer that receives the bitmap. - - - - - Initializes a stream from another stream. Access rights are inherited from the underlying stream. - Microsoft Docs: - The initialize stream. - - - - - Creates an instance of an IWICMetadataWriter. - Microsoft Docs: - Pointer that receives a pointer to a metadata writer. - - - - - Gets the metadata query readers container format. - Microsoft Docs: - Pointer that receives the cointainer format GUID. - - - - - Gets the number of channels the pixel format contains. - Microsoft Docs: - Pointer that receives the channel count. - - - - - Retrieves the color context type. - Microsoft Docs: - A pointer that receives the WICColorContextType of the color context. - - - - - Gets the preferred vendor GUID. - Microsoft Docs: - Pointer that receives the preferred vendor GUID. - - - - - Creates a new instance of the IWICFormatConverter class. - Microsoft Docs: - A pointer that receives a pointer to a new IWICFormatConverter. - - - - - Gets the pixel format of for the locked area of pixels. This can be used to compute the number of bytes-per-pixel in the locked area. - Microsoft Docs: - A pointer that receives the pixel format GUID of the locked area. - - - - - Creates a IWICBitmap from a IWICBitmapSource. - Microsoft Docs: - The IWICBitmapSource to create the bitmap from. - The cache options of the new bitmap. This can be one of the values in the WICBitmapCreateCacheOption enumeration. - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
WICBitmapNoCache
-
-
-Do not create a system memory copy. Share the bitmap with the source. - - -
-
WICBitmapCacheOnDemand
-
-
-Create a system memory copy when the bitmap is first used. - - -
-
WICBitmapCacheOnLoad
-
-
-Create a system memory copy when this method is called. - - -
- A pointer that receives a pointer to the new bitmap. -
-
- - - Creates an IWICBitmap from an icon handle. - Microsoft Docs: - The icon handle to create the new bitmap from. - A pointer that receives a pointer to the new bitmap. - - - - - Specifies the HDR properties of a High Efficiency Image Format (HEIF) image. - Microsoft Docs: - - - - [VT_UI2] Specifies the maximum luminance level of the content in Nits. - - - [VT_UI2] Specifies the maximum average per-frame luminance level of the content in Nits. - - - [VT_UI2] Specifies the maximum luminance of the display on which the content was authored, in Nits. - - - [VT_UI2] Specifies the maximum luminance of the display on which the content was authored, in Nits. - - - [VT_BLOB] Specifies custom color primaries for a video media type. The value of this property is a MT_CUSTOM_VIDEO_PRIMARIESstructure, returned as an array of bytes (VT_BLOB). - - - - Retrieves the IWICColorContext objects of the image. - Microsoft Docs: - The number of color contexts to retrieve. - -This value must be the size of, or smaller than, the size available to ppIColorContexts. - A pointer that receives a pointer to the IWICColorContext. - A pointer that receives the number of color contexts contained in the image. - - - - - Specifies decode options. - Microsoft Docs: - - - - Cache metadata when needed. - - - Cache metadata when decoder is loaded. - - - - Exposes methods used for in-place metadata editing. A fast metadata encoder enables you to add and remove metadata to an image without having to fully re-encode the image. - Microsoft Docs: - - - - - Creates an IWICBitmap from a memory block. - Microsoft Docs: - The width of the new bitmap. - The height of the new bitmap. - The pixel format of the new bitmap. For valid pixel formats, see Native Pixel Formats. - The number of bytes between successive scanlines in pbBuffer. - The size of pbBuffer. - The buffer used to create the bitmap. - A pointer that receives a pointer to the new bitmap. - - - - - Initializes the color context from the given file. - Microsoft Docs: - The name of the file. - - - - - Specifies the properties of a High Efficiency Image Format (HEIF) image. - Microsoft Docs: - - - - [VT_UI2] Indicates the orientation of the image. - -The value of this property uses the same numbering scheme as the System.Photo.Orientation property. For example, a value of 1 (PHOTO_ORIENTATION_NORMAL) indicates a 0 degree rotation. - - - - Retrieves the capabilities of the decoder based on the specified stream. - Microsoft Docs: - The stream to retrieve the decoder capabilities from. - The WICBitmapDecoderCapabilities of the decoder. - - - - - Returns whether the format supports transparent pixels. - Microsoft Docs: - Returns TRUE if the pixel format supports transparency; otherwise, FALSE. - - - - - Specifies the Portable Network Graphics (PNG) filters available for compression optimization. - Microsoft Docs: - - - - Indicates an unspecified PNG filter. This enables WIC to algorithmically choose the best filtering option for the image. - - - Indicates no PNG filter. - - - Indicates a PNG sub filter. - - - Indicates a PNG up filter. - - - Indicates a PNG average filter. - - - Indicates a PNG paeth filter. - - - Indicates a PNG adaptive filter. This enables WIC to choose the best filtering mode on a per-scanline basis. - - - - Initializes a palette to the custom color entries provided. - Microsoft Docs: - Pointer to the color array. - The number of colors in pColors. - - - - - Creates a new instance of the IWICBitmapDecoder class based on the given IStream. - Microsoft Docs: - The stream to create the decoder from. - The GUID for the preferred decoder vendor. Use NULL if no preferred vendor. - The WICDecodeOptions to use when creating the decoder. - A pointer that receives a pointer to a new IWICBitmapDecoder. - - - - - Retrieves the width and height, in pixels, of the locked rectangle. - Microsoft Docs: - A pointer that receives the width of the locked rectangle. - A pointer that receives the height of the locked rectangle. - - - - - Specifies the dimension type of the data contained in DDS image. - Microsoft Docs: - - - - DDS image contains a 1-dimensional texture . - - - DDS image contains a 2-dimensional texture . - - - DDS image contains a 3-dimensional texture . - - - The DDS image contains a cube texture represented as an array of 6 faces. - - - - Finalizes metadata changes to the image stream. - Microsoft Docs: - - - - - Retrieves the file pattern signatures supported by the decoder. - Microsoft Docs: - The array size of the pPatterns array. - Receives a list of WICBitmapPattern objects supported by the decoder. - Receives the number of patterns the decoder supports. - Receives the actual buffer size needed to retrieve all pattern signatures supported by the decoder. - - - - - Adds a top-level metadata block by adding a IWICMetadataWriter for it. - Microsoft Docs: - A pointer to the metadata writer to add to the image. - - - - - Retrieves the number of colors in the color table. - Microsoft Docs: - Pointer that receives the number of colors in the color table. - - - - - Enables writing DDS format specific information to an encoder. - Microsoft Docs: - - - - - Initializes an IWICMetadataBlockWriter from the given IWICMetadataBlockReader. This will prepopulate the metadata block writer with all the metadata in the metadata block reader. - Microsoft Docs: - Pointer to the IWICMetadataBlockReader used to initialize the block writer. - - - - - Specifies the Portable Network Graphics (PNG) sRGB chunk metadata properties. - Microsoft Docs: - - - - [VT_UI1] Indicates the rendering intent for an sRGB color space image. The rendering intents have the following meaning. - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
0Perceptual
1Relative colorimetric
2Saturation
3Absolute colorimetric
-
- - - Gets the current WICRawRenderMode. - Microsoft Docs: - A pointer that receives the current WICRawRenderMode. - - - - - Gets DDS-specific data. - Microsoft Docs: - Points to the structure where the information is returned. - - - - - Gets the information about the current Kelvin range of the raw image. - Microsoft Docs: - A pointer that receives the minimum Kelvin temperature. - A pointer that receives the maximum Kelvin temperature. - A pointer that receives the Kelvin step value. - - - - - Represents metadata header. - Microsoft Docs: - - - - The position of the header. - - - The length of the header. - - - Pointer to the header. - - - The offset of the header. - - - - Gets the current set of parameters. - Microsoft Docs: - A pointer that receives a pointer to the current set of parameters. - - - - - Requests that the encoder use the specified pixel format. - Microsoft Docs: - On input, the requested pixel format GUID. On output, the closest pixel format GUID supported by the encoder; this may be different than the requested format. For a list of pixel format GUIDs, see Native Pixel Formats. - - - - - Defines methods for setting an encoder's properties such as thumbnails, frames, and palettes. - Microsoft Docs: - - - - - Copies pixel data using the supplied input parameters. - Microsoft Docs: - The rectangle of pixels to copy. - The width to scale the source bitmap. This parameter must equal the value obtainable through IWICBitmapSourceTransform::GetClosestSize. - The height to scale the source bitmap. This parameter must equal the value obtainable through IWICBitmapSourceTransform::GetClosestSize. - The GUID of desired pixel format in which the pixels should be returned. - - -This GUID must be a format obtained through an GetClosestPixelFormat call. - The desired rotation or flip to perform prior to the pixel copy. - - -The transform must be an operation supported by an DoesSupportTransform call. - -If a dstTransform is specified, nStride is the transformed stride and is based on the pguidDstFormat pixel format, not the original source's pixel format. - The stride of the destination buffer. - The size of the destination buffer. - The output buffer. - - - - - Provides access to planar Y’CbCr pixel formats where pixel components are stored in separate component planes. - Microsoft Docs: - - - - - Specifies additional options to an IWICPlanarBitmapSourceTransform implementation. - Microsoft Docs: - - - - No options specified. - - - -WIC JPEG Decoder: The default behavior for iDCT scaling is to preserve quality when downscaling by downscaling only the Y plane in some cases, and the image may change to 4:4:4 chroma subsampling. - - - Asks the source to preserve the size ratio between planes when scaling. - -WIC JPEG Decoder: Specifying this option causes the JPEG decoder to scale luma and chroma planes by the same amount, so a 4:2:0 chroma subsampled image outputs 4:2:0 data when downscaling by 2x, 4x, or 8x. - - - - Gets the width and height, in blocks, of the DDS image. - Microsoft Docs: - The width of the DDS image in blocks. - The height of the DDS image in blocks. - - - - - Retrieves a value indicating whether the codec supports animation. - Microsoft Docs: - Receives TRUE if the codec supports images with timing information; otherwise, FALSE. - - - - - Creates an IWICBitmap object. - Microsoft Docs: - The width of the new bitmap . - The height of the new bitmap. - The pixel format of the new bitmap. - The cache creation options of the new bitmap. This can be one of the values in the WICBitmapCreateCacheOption enumeration. - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
WICBitmapCacheOnDemand
-
-
-Allocates system memory for the bitmap at initialization. - -
-
WICBitmapCacheOnLoad
-
-
-Allocates system memory for the bitmap when the bitmap is first used. - -
-
WICBitmapNoCache
-
-
-This option is not valid for this method and should not be used. - -
- A pointer that receives a pointer to the new bitmap. -
-
- - - Retrieves a copy of the AC Huffman table for the specified scan and table. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The index of the AC Huffman table to retrieve. Valid indices for a given scan can be determined by retrieving the scan header with IWICJpegFrameDecode::GetScanHeader. - A pointer that receives the table data. This parameter must not be NULL. - - - - - Sets the desired WICRawParameterSet option. - Microsoft Docs: - The desired WICRawParameterSet option. - - - - - Determines whether a specific transform option is supported natively by the implementation of the IWICBitmapSourceTransform interface. - Microsoft Docs: - The WICBitmapTransformOptions to check if they are supported. - A pointer that receives a value specifying whether the transform option is supported. - - - - - Retrieves a value that describes whether a palette is grayscale. - Microsoft Docs: - A pointer to a variable that receives a boolean value that indicates whether the palette is grayscale. TRUE indicates that the palette is grayscale; otherwise FALSE. - - - - - An extension of the WIC factory interface that includes the ability to create an IWICImageEncoder. - Microsoft Docs: - - - - - Sets the frame thumbnail if supported by the codec. - Microsoft Docs: - The bitmap source to use as the thumbnail. - - - - - Retrieves the WICBitmapPaletteType that describes the palette. - Microsoft Docs: - Pointer that receives the palette type of the bimtap. - - - - - Specifies the progress operations to receive notifications for. - Microsoft Docs: - - - - Receive copy pixel operation. - - - Receive write pixel operation. - - - Receive all progress operations available. - - - - Creates a new instance of the IWICColorTransform class. - Microsoft Docs: - A pointer that receives a pointer to a new IWICColorTransform. - - - - - Retrieves the IWICMetadataWriter that resides at the specified index. - Microsoft Docs: - The index of the metadata writer to be retrieved. This index is zero-based. - When this method returns, contains a pointer to the metadata writer that resides at the specified index. - - - - - Exposes methods that provide information about a pixel format. - Microsoft Docs: - - - - - Retrieves an IWICBitmapEncoderInfo for the encoder. - Microsoft Docs: - A pointer that receives a pointer to an IWICBitmapEncoderInfo. - - - - - Retrieves the total number of frames in the image. - Microsoft Docs: - A pointer that receives the total number of frames in the image. - - - - - Exposes methods that enable the encoding of metadata. This interface is implemented by the decoder and its image frames. - Microsoft Docs: - - - - - Retrieves a copy of the DC Huffman table for the specified scan and table. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The index of the DC Huffman table to retrieve. Valid indices for a given scan can be determined by retrieving the scan header with IWICJpegFrameDecode::GetScanHeader. - A pointer that receives the table data. This parameter must not be NULL. - - - - - Encodes the image as a thumbnail to the frame given by the IWICBitmapFrameEncode. - Microsoft Docs: - The Direct2D image that will be encoded. - The frame encoder on which the thumbnail is set. - Additional parameters to control encoding. - - - - - Specifies the Portable Network Graphics (PNG) iCCP chunk metadata properties. - Microsoft Docs: - - - - [VT_LPSTR] Indicates the International Color Consortium (ICC) profile name. - - - [VT_VECTOR \| VT_UI1] Indicates the embedded ICC profile. - - - - Exposes methods that provide enumeration services for individual metadata items. - Microsoft Docs: - - - - - Creates an IWICBitmap from a specified rectangle of an IWICBitmapSource. - Microsoft Docs: - The IWICBitmapSource to create the bitmap from. - The horizontal coordinate of the upper-left corner of the rectangle. - The vertical coordinate of the upper-left corner of the rectangle. - The width of the rectangle and the new bitmap. - The height of the rectangle and the new bitmap. - A pointer that receives a pointer to the new bitmap. - - - - - Specifies the type of dither algorithm to apply when converting between image formats. - Microsoft Docs: - - - - A solid color algorithm without dither. - - - A solid color algorithm without dither. - - - A 4x4 ordered dither algorithm. - - - An 8x8 ordered dither algorithm. - - - A 16x16 ordered dither algorithm. - - - A 4x4 spiral dither algorithm. - - - An 8x8 spiral dither algorithm. - - - A 4x4 dual spiral dither algorithm. - - - An 8x8 dual spiral dither algorithm. - - - An error diffusion algorithm. - - - - Retrieves a small preview of the frame, if supported by the codec. - Microsoft Docs: - A pointer that receives a pointer to the IWICBitmapSource of the thumbnail. - - - - - Retrieves an IWICBitmapDecoderInfo for the image. - Microsoft Docs: - A pointer that receives a pointer to an IWICBitmapDecoderInfo. - - - - - Retrieves a value indicating whether the given mime type matches the mime type of the codec. - Microsoft Docs: - The mime type to compare. - Receives TRUE if the mime types match; otherwise, FALSE. - - - - - Use this method to determine if a desired planar output is supported and allow the caller to choose an optimized code path if it is. - Microsoft Docs: - On input, the desired width. On output, the closest supported width to the desired width; this is the same size or larger than the desired width. - On input, the desired height. On output, the closest supported height to the desired height; this is the same size or larger than the desired width. - The desired rotation or flip operation. Multiple WICBitmapTransformOptions can be combined in this flag parameter, see WICBitmapTransformOptions. - Used to specify additional configuration options for the transform. See WICPlanarOptions for more detail. - - - -WIC JPEG Decoder: - - -WICPlanarOptionsPreserveSubsampling can be specified to retain the subsampling ratios when downscaling. By default, the JPEG decoder attempts to preserve quality by downscaling only the Y plane in some cases, changing the image to 4:4:4 chroma subsampling. - The requested pixel formats of the respective planes. - When *pfIsSupported == TRUE, the array of plane descriptions contains the size and format of each of the planes. - - - -WIC JPEG Decoder: The Cb and Cr planes can be a different size from the values returned by puiWidth and puiHeight due to chroma subsampling. - The number of component planes requested. - Set to TRUE if the requested transforms are natively supported. - - - - - Specifies the desired cache usage. - Microsoft Docs: - - - - Do not cache the bitmap. - - - Cache the bitmap when needed. - - - Cache the bitmap at initialization. - - - - Retrieves the container format of the decoder. - Microsoft Docs: - The container format of the decoder. The native container format GUIDs are listed in WIC GUIDs and CLSIDs. - - - - - Exposes methods for a stream provider. - Microsoft Docs: - - - - - Exposes methods that provide component information. - Microsoft Docs: - - - - - Retrieves a value indicating whether the codec supports multi frame images. - Microsoft Docs: - Receives TRUE if the codec supports multi frame images; otherwise, FALSE. - - - - - Writes lines from the source planes to the encoded format. - Microsoft Docs: - The number of lines to encode. See the Remarks section for WIC Jpeg specific line count restrictions. - Specifies the source buffers for each component plane encoded. - The number of component planes specified by the pPlanes parameter. - - - - - Retrieves a comma delimited list of the file name extensions associated with the codec. - Microsoft Docs: - The size of the file name extension buffer. Use 0 on first call to determine needed buffer size. - Receives a comma delimited list of file name extensions associated with the codec. Use NULL on first call to determine needed buffer size. - The actual buffer size needed to retrieve all file name extensions associated with the codec. - - - - - Gets the white point RGB values. - Microsoft Docs: - A pointer that receives the red white point value. - A pointer that receives the green white point value. - A pointer that receives the blue white point value. - - - - - Creates a new instance of the IWICPalette class. - Microsoft Docs: - A pointer that receives a pointer to a new IWICPalette. - - - - - Creates a copy of the current IWICEnumMetadataItem. - Microsoft Docs: - A pointer that receives a pointer to the IWICEnumMetadataItem copy. - - - - - Obtains a IWICBitmapSource in the desired pixel format from a given IWICBitmapSource. - Microsoft Docs: - The pixel format to convert to. - The source bitmap. - A pointer to the null-initialized destination bitmap pointer. - - - - - Sets the notification callback method. - Microsoft Docs: - Pointer to the notification callback method. - - - - - Specifies the options for indexing a JPEG image. - Microsoft Docs: - - - - Index generation is deferred until IWICBitmapSource::CopyPixels is called on the image. - - - Index generation is performed when the when the image is initially loaded. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used. - - - - Gets the tone curve of the raw image. - Microsoft Docs: - The size of the pToneCurve buffer. - A pointer that receives the WICRawToneCurve of the raw image. - A pointer that receives the size needed to obtain the tone curve structure. - - - - - Specifies the sampling or filtering mode to use when scaling an image. - Microsoft Docs: - - - - A nearest neighbor interpolation algorithm. Also known as nearest pixel or point interpolation. - - -The output pixel is assigned the value of the pixel that the point falls within. No other pixels are considered. - - - A bilinear interpolation algorithm. - - -The output pixel values are computed as a weighted average of the nearest four pixels in a 2x2 grid. - - - A bicubic interpolation algorithm. - - -Destination pixel values are computed as a weighted average of the nearest sixteen pixels in a 4x4 grid. - - - A Fant resampling algorithm. - - -Destination pixel values are computed as a weighted average of the all the pixels that map to the new pixel. - - - A high quality bicubic interpolation algorithm. Destination pixel values are computed using a much denser sampling - kernel than regular cubic. The kernel is resized in response to the scale factor, making it suitable for downscaling by factors greater than 2. - -
Note  This value is supported beginning with Windows 10.
-
 
-
- - - Creates a new instance of an IWICBitmapClipper object. - Microsoft Docs: - A pointer that receives a pointer to a new IWICBitmapClipper. - - - - - This defines parameters that you can use to override the default parameters normally used when encoding an image. - Microsoft Docs: - - - - The pixel format to which the image is processed before it is written to the encoder. - - - The DPI in the x dimension. - - - The DPI in the y dimension. - - - The top corner in pixels of the image space to be encoded to the destination. - - - The left corner in pixels of the image space to be encoded to the destination. - - - The width in pixels of the part of the image to write. - - - The height in pixels of the part of the image to write. - - - - Initializes the bitmap clipper with the provided parameters. - Microsoft Docs: - he input bitmap source. - The rectangle of the bitmap source to clip. - - - - - Gets the named white point of the raw image. - Microsoft Docs: - A pointer that receives the bitwise combination of the enumeration values. - - - - - Initializes the format converter. - Microsoft Docs: - The input bitmap to convert - The destination pixel format GUID. - The WICBitmapDitherType used for conversion. - The palette to use for conversion. - The alpha threshold to use for conversion. - The palette translation type to use for conversion. - - - - - Removes the indexing from a JPEG that has been indexed using IWICJpegFrameDecode::SetIndexing. - Microsoft Docs: - - - - - Gets information about the format in which the DDS image is stored. - Microsoft Docs: - Information about the DDS format. - - - - - Specifies the logical screen descriptor properties for Graphics Interchange Format (GIF) metadata. - Microsoft Docs: - - - - [VT_UI1 | VT_VECTOR] Indicates the signature property. - - - [VT_UI2] Indicates the width in pixels. - - - [VT_UI2] Indicates the height in pixels. - - - [VT_BOOL] Indicates the global color table flag. TRUE if a global color table is present; otherwise, FALSE. - - - [VT_UI1] Indicates the color resolution in bits per pixel. - - - [VT_BOOL] Indicates the sorted color table flag. TRUE if the table is sorted; otherwise, FALSE. - - - [VT_UI1] Indicates the value used to calculate the number of bytes contained in the global color table. - -To calculate the actual size of the color table, raise 2 to the value of the field + 1. - - - [VT_UI1] Indicates the index within the color table to use for the background (pixels not defined in the image). - - - [VT_UI1] Indicates the factor used to compute an approximation of the aspect ratio. - - - - Retrieves the vendor GUID. - Microsoft Docs: - A pointer that receives the component's vendor GUID. - - - - - Sets a metadata item to a specific location. - Microsoft Docs: - The name of the metadata item. - The metadata to set. - - - - - Gets the metadata query writer for the encoder frame. - Microsoft Docs: - When this method returns, contains a pointer to metadata query writer for the encoder frame. - - - - - Exposes methods that support the Lock method. - Microsoft Docs: - - - - - Provides access to a rectangular area of the bitmap. - Microsoft Docs: - The rectangle to be accessed. - The access mode you wish to obtain for the lock. This is a bitwise combination of WICBitmapLockFlags for read, write, or read and write access. - - - - - - - - - - - - - - -
ValueMeaning
-
WICBitmapLockRead
-
-
-The read access lock. - -
-
WICBitmapLockWrite
-
-
-The write access lock. - -
- A pointer that receives the locked memory location. -
-
- - - Registers a progress notification callback function. - Microsoft Docs: - A function pointer to the application defined progress notification callback function. See ProgressNotificationCallback for the callback signature. - A pointer to component data for the callback method. - The WICProgressOperation and WICProgressNotification flags to use for progress notification. - - - - - Retrieves an IWICMetadataReader for a specified top level metadata block. - Microsoft Docs: - The index of the desired top level metadata block to retrieve. - When this method returns, contains a pointer to the IWICMetadataReader specified by nIndex. - - - - - Retrieves the pixel width and height of the bitmap. - Microsoft Docs: - A pointer that receives the pixel width of the bitmap. - A pointer that receives the pixel height of the bitmap - - - - - Initializes the stream as a substream of another stream. - Microsoft Docs: - Pointer to the input stream. - The stream offset used to create the new stream. - The maximum size of the stream. - - - - - Retrieves the component's version. - Microsoft Docs: - The size of the wzVersion buffer. - A pointer that receives a culture invariant string of the component's version. - A pointer that receives the actual length of the component's version. The version is optional; if a value is not specified by the component, the length returned is 0. - - - - - Retrieves an enumeration of IWICMetadataReader objects representing each of the top level metadata blocks. - Microsoft Docs: - When this method returns, contains a pointer to an enumeration of IWICMetadataReader objects. - - - - - Sets the noise reduction value of the raw image. - Microsoft Docs: - The noise reduction value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for noise reduction is 0.0 through 1.0. The 0.0 lower limit represents no noise reduction applied to the image, while the 1.0 upper limit represents highest noise reduction amount that can be applied. - - - - - Gets the persist options used when initializing the component with a stream. - Microsoft Docs: - Pointer that receives the persist options used when initializing the component with a stream. If none were provided, WICPersistOptionDefault is returned. - - - - - Provides information and functionality specific to the DDS image format. - Microsoft Docs: - - - - - Retrieves a value indicating whether the codec supports chromakeys. - Microsoft Docs: - Receives TRUE if the codec supports chromakeys; otherwise, FALSE. - - - - - Represents a JPEG frame header. - Microsoft Docs: - - - - The number of components in the scan. - - - The interval of reset markers within the scan. - - - The component identifiers. - - - The format of the quantization table indices. Use one of the following constants, described in IWICJpegFrameDecode Constants. - -
    -
  • WIC_JPEG_HUFFMAN_BASELINE_ONE
  • -
  • WIC_JPEG_HUFFMAN_BASELINE_THREE
  • -
-
- - The start of the spectral selection. - - - The end of the spectral selection. - - - The successive approximation high. - - - The successive approximation low. - - - - Exposes methods that create components used by component developers. This includes metadata readers, writers and other services for use by codec and metadata handler developers. - Microsoft Docs: - - - - - Specifies the identifiers of the metadata items in an 8BIM IPTC block. - Microsoft Docs: - - - - [VT_LPSTR] A name that identifies the 8BIM block. - - - - Exposes methods for offloading certain operations to the underlying IWICBitmapSource implementation. - Microsoft Docs: - - - - - Commits the frame to the image. - Microsoft Docs: - - - - - Retrieves header data from the entire frame. - Microsoft Docs: - A pointer that receives the frame header data. - - - - - Retrieves the color context profile. - Microsoft Docs: - The size of the pbBuffer buffer. - A pointer that receives the color context profile. - A pointer that receives the actual buffer size needed to retrieve the entire color context profile. - - - - - Initializes an IWICColorTransform with a IWICBitmapSource and transforms it from one IWICColorContext to another. - Microsoft Docs: - The bitmap source used to initialize the color transform. - The color context source. - The color context destination. - The GUID of the desired pixel format. - -This parameter is limited to a subset of the native WIC pixel formats, see Remarks for a list. - - - - - Defines constants that specify a primitive type for numeric representation of a WIC pixel format. - Microsoft Docs: - - - - The format is not specified. - - - Specifies that the format is indexed. - - - Specifies that the format is represented as an unsigned integer. - - - Specifies that the format is represented as a signed integer. - - - Specifies that the format is represented as a fixed-point number. - - - Specifies that the format is represented as a floating-point number. - - - This constant contains the maximum DWORD value. - - - - Gets the white point Kelvin temperature of the raw image. - Microsoft Docs: - A pointer that receives the white point Kelvin temperature of the raw image. The default is the "as-shot" setting value. - - - - - Specifies conversion matrix from Y'Cb'Cr' to R'G'B'. - Microsoft Docs: - - - - Specifies the identity transfer matrix. - - - Specifies the BT601 transfer matrix. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used. - - - - Sets the IWICPalette for indexed pixel formats. - Microsoft Docs: - The IWICPalette to use for indexed pixel formats. - -The encoder may change the palette to reflect the pixel formats the encoder supports. - - - - - Exposes methods for retrieving metadata blocks and items from a decoder or its image frames using a metadata query expression. - Microsoft Docs: - - - - - Sets the exposure compensation stop value. - Microsoft Docs: - The exposure compensation value. The value range for exposure compensation is -5.0 through +5.0, which equates to 10 full stops. - - - - - Exposes methods that provide access to writing metadata content. This is implemented by independent software vendors (ISVs) to create new metadata writers. - Microsoft Docs: - - - - - Encodes a bitmap source. - Microsoft Docs: - The bitmap source to encode. - The size rectangle of the bitmap source. - - - - - Represents a rectangle for Windows Imaging Component (WIC) API. - Microsoft Docs: - - - - The horizontal coordinate of the rectangle. - - - The vertical coordinate of the rectangle. - - - The width of the rectangle. - - - The height of the rectangle. - - - - Retrieves the container formats supported by the metadata handler. - Microsoft Docs: - The size of the pguidContainerFormats array. - Pointer to an array that receives the container formats supported by the metadata handler. - The actual number of GUIDs added to the array. - - -To obtain the number of supported container formats, pass NULL to pguidContainerFormats. - - - - - Retrieves the component's class identifier (CLSID) - Microsoft Docs: - A pointer that receives the component's CLSID. - - - - - Initializes a palette using a computed optimized values based on the reference bitmap. - Microsoft Docs: - Pointer to the source bitmap. - The number of colors to initialize the palette with. - A value to indicate whether to add a transparent color. - - - - - Gets the sharpness value of the raw image. - Microsoft Docs: - A pointer that receives the sharpness value of the raw image. The default value is the "as-shot" setting. The value range for sharpness is 0.0 through 1.0. The 0.0 lower limit represents no sharpening applied to the image, while the 1.0 upper limit represents the highest amount of sharpness that can be applied. - - - - - Query if the format converter can convert from one format to another. - Microsoft Docs: - An array of WIC pixel formats that represents source image planes. - The number of source pixel formats specified by the pSrcFormats parameter. - The destination interleaved pixel format. - True if the conversion is supported. - - - - - Exposes methods that refers to a source from which pixels are retrieved, but cannot be written back to. - Microsoft Docs: - - - - - Initializes the decoder with the provided stream. - Microsoft Docs: - The stream to use for initialization. - -The stream contains the encoded pixels which are decoded each time the CopyPixels method on the IWICBitmapFrameDecode interface (see GetFrame) is invoked. - The WICDecodeOptions to use for initialization. - - - - - Retrieves a comma delimited list of device models associated with the codec. - Microsoft Docs: - The size of the device models buffer. Use 0 on first call to determine needed buffer size. - Receives a comma delimited list of device model names associated with the codec. Use NULL on first call to determine needed buffer size. - The actual buffer size needed to retrieve all of the device model names. - - - - - An application-defined callback method used for raw image parameter change notifications. - Microsoft Docs: - A set of IWICDevelopRawNotificationCallback Constants parameter notification flags. - - - - - Retrieves a value indicating whether this decoder supports indexing for efficient random access. - Microsoft Docs: - True if indexing is supported; otherwise, false. - - - - - Exposes methods used for progress notification for encoders and decoders. - Microsoft Docs: - - - - - Creates an IWICMetadataWriter based on the given parameters. - Microsoft Docs: - The GUID of the desired metadata format. - Pointer to the GUID of the desired metadata reader vendor. - The WICPersistOptions and WICMetadataCreationOptions options to use when creating the metadata reader. - A pointer that receives a pointer to the new metadata writer. - - - - - Retrieves a preview image, if supported. - Microsoft Docs: - Receives a pointer to the preview bitmap if supported. - - - - - Determines if the metadata handler requires a fixed size. - Microsoft Docs: - Pointer that receives TRUE if a fixed size is required; otherwise, FALSE. - - - - - Specifies the identifiers of the metadata items in an 8BIMResolutionInfo block. - Microsoft Docs: - - - - [VT_LPSTR] A name that identifies the 8BIM block. - - - [VT_UI4] The horizontal resolution of the image. - - - [VT_UI2] The units that the horizontal resolution is specified in; a 1 indicates pixels per inch and a 2 indicates pixels per centimeter. - - - [VT_UI2] The units that the image width is specified in; a 1 indicates inches, a 2 indicates centimeters, a 3 indicates points, a 4 specifies picas, and a 5 specifies columns. - - - [VT_UI4] The vertical resolution of the image. - - - [VT_UI2] The units that the vertical resolution is specified in; a 1 indicates pixels per inch and a 2 indicates pixels per centimeter. - - - [VT_UI2] The units that the image height is specified in; a 1 indicates inches, a 2 indicates centimeters, a 3 indicates points, a 4 specifies picas, and a 5 specifies columns. - - - - Specifies the Portable Network Graphics (PNG) hIST chunk metadata properties. - Microsoft Docs: - - - - [VT_VECTOR | VT_UI2] Indicates the approximate usage frequency of each color in the color palette. - - - - Creates an IWICMetadataWriter from the given IWICMetadataReader. - Microsoft Docs: - Pointer to the metadata reader to base the metadata writer on. - Pointer to the GUID of the desired metadata reader vendor. - A pointer that receives a pointer to the new metadata writer. - - - - - Gets DDS-specific data. - Microsoft Docs: - A pointer to the structure where the information is returned. - - - - - Retrieves the closest pixel format to which the implementation of IWICBitmapSourceTransform can natively copy pixels, given a desired format. - Microsoft Docs: - A pointer that receives the GUID of the pixel format that is the closest supported pixel format of the desired format. - - - - - Initializes the color context from a memory block. - Microsoft Docs: - The buffer used to initialize the IWICColorContext. - The size of the pbBuffer buffer. - - - - - Specifies access to an IWICBitmap. - Microsoft Docs: - - - - A read access lock. - - - A write access lock. - - - - Sets the white point Kelvin value. - Microsoft Docs: - The white point Kelvin value. Acceptable Kelvin values are 1,500 through 30,000. - - - - - Encodes the given image as the thumbnail to the given WIC bitmap encoder. - Microsoft Docs: - The Direct2D image that will be encoded. - The encoder on which the thumbnail is set. - Additional parameters to control encoding. - - - - - Gets the number of metadata items within the reader. - Microsoft Docs: - Pointer that receives the number of metadata items within the reader. - - - - - Creates an IEnumUnknown object of the specified component types. - Microsoft Docs: - The types of WICComponentType to enumerate. - The WICComponentEnumerateOptions used to enumerate the given component types. - A pointer that receives a pointer to a new component enumerator. - - - - - Creates an instance of an IWICMetadataReader. - Microsoft Docs: - Pointer that receives a pointer to a metadata reader. - - - - - Defines methods that add the concept of writeability and static in-memory representations of bitmaps to IWICBitmapSource. - Microsoft Docs: - - - - - Retrieves a copy of the compressed JPEG scan directly from the WIC decoder frame's output stream. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The byte position in the scan data to begin copying. Use 0 on the first call. If the output buffer size is insufficient to store the entire scan, this offset allows you to resume copying from the end of the previous copy operation. - The size, in bytes, of the pbScanData array. - A pointer that receives the table data. This parameter must not be NULL. - A pointer that receives the size of the scan data actually copied into pbScanData. The size returned may be smaller that the size of cbScanData. This parameter may be NULL. - - - - - Advanced the current position in the enumeration. - Microsoft Docs: - The number of items to be retrieved. - An array of enumerated items. This parameter is optional. - An array of enumerated items. - An array of enumerated items. This parameter is optional. - The number of items that were retrieved. This value is always less than or equal to the number of items requested. - - - - - Sets the destination color context. - Microsoft Docs: - The destination color context. - - - - - Creates an IWICMetadataReader based on the given parameters. - Microsoft Docs: - The GUID of the desired metadata format. - Pointer to the GUID of the desired metadata reader vendor. - The WICPersistOptions and WICMetadataCreationOptions options to use when creating the metadata reader. - Pointer to a stream in which to initialize the reader with. If NULL, the metadata reader will be empty. - A pointer that receives a pointer to the new metadata reader. - - - - - Retrieves a value that describes whether the palette is black and white. - Microsoft Docs: - A pointer to a variable that receives a boolean value that indicates whether the palette is black and white. TRUE indicates that the palette is black and white; otherwise, FALSE. - - - - - Specifies Windows Imaging Component (WIC) options that are used when initializing a component with a stream. - Microsoft Docs: - - - - The default persist options. The default is WICPersistOptionLittleEndian. - - - The data byte order is little endian. - - - The data byte order is big endian. - - - The data format must strictly conform to the specification. - -
Warning  This option is inconsistently implement and should not be relied on.
-
 
-
- - No cache for the metadata stream. - -Certain operations, such as IWICComponentFactory::CreateMetadataWriterFromReader require that the reader have a stream. Therefore, these operations will be unavailable if the reader is initialized with WICPersistOptionNoCacheStream. - - - Use UTF8 instead of the default UTF16. - -
Note  This option is currently unused by WIC.
-
 
-
- - The WICPersistOptions mask. - - - - Commits all changes for the image and closes the stream. - Microsoft Docs: - - - - - Initializes a format converter with a planar source, and specifies the interleaved output pixel format. - Microsoft Docs: - An array of IWICBitmapSource that represents image planes. - The number of component planes specified by the planes parameter. - The destination interleaved pixel format. - The WICBitmapDitherType used for conversion. - The palette to use for conversion. - The alpha threshold to use for conversion. - The palette translation type to use for conversion. - - - - - Creates a new instance of an IWICBitmapFlipRotator object. - Microsoft Docs: - A pointer that receives a pointer to a new IWICBitmapFlipRotator. - - - - - Specifies the pixel format and size of a component plane. - Microsoft Docs: - - - - Describes the pixel format of the plane. - - - Component width of the plane. - - - Component height of the plane. - - - - Initializes the palette to one of the pre-defined palettes specified by WICBitmapPaletteType and optionally adds a transparent color. - Microsoft Docs: - The desired pre-defined palette type. - The optional transparent color to add to the palette. If no transparent color is needed, use 0. When initializing to a grayscale or black and white palette, set this parameter to FALSE. - - - - - Gets the exposure compensation stop value of the raw image. - Microsoft Docs: - A pointer that receives the exposure compensation stop value. The default is the "as-shot" setting. - - - - - Exposes methods that produce a flipped (horizontal or vertical) and/or rotated (by 90 degree increments) bitmap source. The flip is done before the rotation. - Microsoft Docs: - - - - - Retrieves the specified frame of the DDS image. - Microsoft Docs: - The requested index within the texture array. - The requested mip level. - The requested slice within the 3D texture. - A pointer to a IWICBitmapFrameDecode object. - - - - - Specifies the Tagged Image File Format (TIFF) compression options. - Microsoft Docs: - - - - Indicates a suitable compression algorithm based on the image and pixel format. - - - Indicates no compression. - - - Indicates a CCITT3 compression algorithm. This algorithm is only valid for 1bpp pixel formats. - - - Indicates a CCITT4 compression algorithm. This algorithm is only valid for 1bpp pixel formats. - - - Indicates a LZW compression algorithm. - - - Indicates a RLE compression algorithm. This algorithm is only valid for 1bpp pixel formats. - - - Indicates a ZIP compression algorithm. - - - Indicates an LZWH differencing algorithm. - - - - Gets the metadata item value. - Microsoft Docs: - Pointer to the metadata item's schema property. - Pointer to the metadata item's id. - Pointer that receives the metadata value. - - - - - Sets the global palette for the image. - Microsoft Docs: - The IWICPalette to use as the global palette. - - - - - Sets the tint value of the raw image. - Microsoft Docs: - The tint value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for sharpness is -1.0 through +1.0. The -1.0 lower limit represents a full green bias to the image, while the 1.0 upper limit represents a full magenta bias. - - - - - Specifies the cache options available for an encoder. - Microsoft Docs: - - - - The encoder is cached in memory. This option is not supported. - - - The encoder is cached to a temporary file. This option is not supported. - - - The encoder is not cached. - - - - Specifies the JPEG comment properties. - Microsoft Docs: - - - - Indicates the metadata property is comment text. - - - - Replaces the metadata writer at the specified index location. - Microsoft Docs: - The index position at which to place the metadata writer. This index is zero-based. - A pointer to the IWICMetadataWriter. - - - - - Specifies the DDS image dimension, DXGI_FORMAT and alpha mode of contained data. - Microsoft Docs: - - - - The width, in pixels, of the texture at the largest mip size (mip level 0). - - - The height, in pixels, of the texture at the largest mip size (mip level 0). When the DDS image contains a 1-dimensional texture, this value is equal to 1. - - - The number of slices in the 3D texture. This is equivalent to the depth, in pixels, of the 3D texture at the largest mip size (mip level 0). When the DDS image contains a 1- or 2-dimensional texture, this value is equal to 1. - - - The number of mip levels contained in the DDS image. - - - The number of textures in the array in the DDS image. - - - The DXGI_FORMAT of the DDS pixel data. - - - Specifies the dimension type of the data contained in DDS image (1D, 2D, 3D or cube texture). - - - Specifies the alpha behavior of the DDS image. - - - - Specifies the Portable Network Graphics (PNG) tIME chunk metadata properties. - Microsoft Docs: - - - - [VT_UI2] Indicates the year of the last modification. - - - [VT_UI1] Indicates the month of the last modification. - - - [VT_UI1] Indicates day of the last modification. - - - [VT_UI1] Indicates the hour of the last modification. - - - [VT_UI1] Indicates the minute of the last modification. - - - [VT_UI1] Indicates the second of the last modification. - - - - Specifies component enumeration options. - Microsoft Docs: - - - - Enumerate any components that are not disabled. Because this value is 0x0, it is always included with the other options. - - - Force a read of the registry before enumerating components. - - - Include disabled components in the enumeration. The set of disabled components is disjoint with the set of default enumerated components - - - Include unsigned components in the enumeration. This option has no effect. - - - At the end of component enumeration, filter out any components that are not Windows provided. - - - - Exposes methods that provide access to the capabilites of a raw codec format. - Microsoft Docs: - - - - - Exposes methods that provide information about a decoder. - Microsoft Docs: - - - - - Retrieves the pixel formats the codec supports. - Microsoft Docs: - The size of the pguidPixelFormats array. Use 0 on first call to determine the needed array size. - Receives the supported pixel formats. Use NULL on first call to determine needed array size. - The array size needed to retrieve all supported pixel formats. - - - - - Creates a new IWICBitmapDecoder instance. - Microsoft Docs: - A pointer that receives a pointer to a new instance of the IWICBitmapDecoder. - - - - - Creates a new IWICBitmapFrameEncode instance. - Microsoft Docs: - A pointer that receives a pointer to the new instance of an IWICBitmapFrameEncode. - Optional. Receives the named properties to use for subsequent frame initialization. See Remarks. - - - - - Specifies the access level of a Windows Graphics Device Interface (GDI) section. - Microsoft Docs: - - - - Indicates a read only access level. - - - Indicates a read/write access level. - - - - Encodes the image to the frame given by the IWICBitmapFrameEncode. - Microsoft Docs: - The Direct2D image that will be encoded. - The frame encoder to which the image is written. - Additional parameters to control encoding. - - - - - Specifies the the meaning of pixel color component values contained in the DDS image. - Microsoft Docs: - - - - Alpha behavior is unspecified and must be determined by the reader. - - - The alpha data is straight. - - - The alpha data is premultiplied. - - - The alpha data is opaque (UNORM value of 1). This can be used by a compliant reader as a performance optimization. For example, blending operations can be converted to copies. - - - The alpha channel contains custom data that is not alpha. - - - - Creates an encoder property bag. - Microsoft Docs: - Pointer to an array of PROPBAG2 options used to create the encoder property bag. - The number of PROPBAG2 structures in the ppropOptions array. - A pointer that receives a pointer to an encoder IPropertyBag2. - - - - - Contains members that identify a pattern within an image file which can be used to identify a particular format. - Microsoft Docs: - - - - The offset the pattern is located in the file. - - - The pattern length. - - - The actual pattern. - - - The pattern mask. - - - The end of the stream. - - - - Obtains the GUID associated with the given short name. - Microsoft Docs: - A pointer to the short name. - A pointer that receives the GUID associated with the given short name. - - - - - Specifies the pixel format, buffer, stride and size of a component plane for a planar pixel format. - Microsoft Docs: - - - - Describes the pixel format of the plane. - - - Pointer to the buffer that holds the plane’s pixel components. - - - The stride of the buffer ponted to by pbData. Stride indicates the total number of bytes to go from the beginning of one scanline to the beginning of the next scanline. - - - The total size of the buffer pointed to by pbBuffer. - - - - Gets an enumerator of all the metadata items. - Microsoft Docs: - Pointer that receives a pointer to the metadata enumerator. - - - - - Specifies the desired alpha channel usage. - Microsoft Docs: - - - - Use alpha channel. - - - Use a pre-multiplied alpha channel. - - - Ignore alpha channel. - - - Sentinel value. - - - - Creates a new IWICBitmapEncoder instance. - Microsoft Docs: - A pointer that receives a pointer to a new IWICBitmapEncoder instance. - - - - - Retrieves the name of component's author. - Microsoft Docs: - The size of the wzAuthor buffer. - A pointer that receives the name of the component's author. - The locale of the string depends on the value that the codec wrote to the registry at install time. For built-in components, these strings are always in English. - A pointer that receives the actual length of the component's authors name. The author name is optional; if an author name is not specified by the component, the length returned is 0. - - - - - Retrieves the sampling rate between pixels and physical world measurements. - Microsoft Docs: - A pointer that receives the x-axis dpi resolution. - A pointer that receives the y-axis dpi resolution. - - - - - Retrieves the component's friendly name, which is a human-readable display name for the component. - Microsoft Docs: - The size of the wzFriendlyName buffer. - A pointer that receives the friendly name of the component. - The locale of the string depends on the value that the codec wrote to the registry at install time. For built-in components, these strings are always in English. - A pointer that receives the actual length of the component's friendly name. - - - - - Represents a Windows Imaging Component (WIC) stream for referencing imaging and metadata content. - Microsoft Docs: - - - - - Gets the stream held by the component. - Microsoft Docs: - Pointer that receives a pointer to the stream held by the component. - - - - - Retrieves the metadata format of the metadata handler. - Microsoft Docs: - Pointer that receives the metadata format GUID. - - - - - Gets the noise reduction value of the raw image. - Microsoft Docs: - A pointer that receives the noise reduction value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for noise reduction is 0.0 through 1.0. The 0.0 lower limit represents no noise reduction applied to the image, while the 1.0 upper limit represents full highest noise reduction amount that can be applied. - - - - - Specifies the type of Windows Imaging Component (WIC) component. - Microsoft Docs: - - - - A WIC decoder. - - - A WIC encoder. - - - A WIC pixel converter. - - - A WIC metadata reader. - - - A WIC metadata writer. - - - A WIC pixel format. - - - All WIC components. - - - - Specifies the parameter set used by a raw codec. - Microsoft Docs: - - - - An as shot parameter set. - - - A user adjusted parameter set. - - - A codec adjusted parameter set. - - - - Sets the desired rotation angle. - Microsoft Docs: - The desired rotation angle. - - - - - Changes the physical resolution of the image. - Microsoft Docs: - The horizontal resolution. - The vertical resolution. - - - - - Retrieves a bitmap thumbnail of the image, if one exists - Microsoft Docs: - Receives a pointer to the IWICBitmapSource of the thumbnail. - - - - - Copies the decoder's IWICPalette . - Microsoft Docs: - AnIWICPalette to which the decoder's global palette is to be copied. Use CreatePalette to create the destination palette before calling CopyPalette. - - - - - Exposes methods that provide information about a particular codec. - Microsoft Docs: - - - - - Exposes methods for decoding JPEG images. Provides access to the Start Of Frame (SOF) header, Start of Scan (SOS) header, the Huffman and Quantization tables, and the compressed JPEG JPEG data. Also enables indexing for efficient random access. - Microsoft Docs: - - - - - Initializes a stream to treat a block of memory as a stream. The stream cannot grow beyond the buffer size. - Microsoft Docs: - Pointer to the buffer used to initialize the stream. - The size of buffer. - - - - - Initializes a stream from a particular file. - Microsoft Docs: - The file used to initialize the stream. - The desired file access mode. - - - - - - - - - - - - - - -
ValueMeaning
-
GENERIC_READ
-
-
-Read access. - -
-
GENERIC_WRITE
-
-
-Write access. - -
-
-
- - - Gets the pixel format's channel mask. - Microsoft Docs: - The index to the channel mask to retrieve. - The size of the pbMaskBuffer buffer. - Pointer to the mask buffer. - The actual buffer size needed to obtain the channel mask. - - - - - Gets the contrast value of the raw image. - Microsoft Docs: - A pointer that receives the contrast value of the raw image. The default value is the "as-shot" setting. The value range for contrast is 0.0 through 1.0. The 0.0 lower limit represents no contrast applied to the image, while the 1.0 upper limit represents the highest amount of contrast that can be applied. - - - - - Specifies the component signing status. - Microsoft Docs: - - - - A signed component. - - - An unsigned component - - - A component is safe. - - -Components that do not have a binary component to sign, such as a pixel format, should return this value. - - - A component has been disabled. - - - - Sets the output image dimensions for the frame. - Microsoft Docs: - The width of the output image. - The height of the output image. - - - - - Retrieves the number of top level metadata blocks. - Microsoft Docs: - When this method returns, contains the number of top level metadata blocks. - - - - - Retrieves the pixel format of the bitmap source.. - Microsoft Docs: - Receives the pixel format GUID the bitmap is stored in. For a list of available pixel formats, see the Native Pixel Formats topic. - - - - - Retrieves parameters from the Start Of Scan (SOS) marker for the scan with the specified index. - Microsoft Docs: - The index of the scan for which header data is retrieved. - A pointer that receives the frame header data. - - - - - Retrieves the metadata block or item identified by a metadata query expression. - Microsoft Docs: - The query expression to the requested metadata block or item. - When this method returns, contains the metadata block or item requested. - - - - - Retrieves the signing status of the component. - Microsoft Docs: - A pointer that receives the WICComponentSigning status of the component. - - - - - Saves the IWICPersistStream to the given input IStream using the given parameters. - Microsoft Docs: - The stream to save to. - The WICPersistOptions to use when saving. - Indicates whether the "dirty" value will be cleared from all metadata after saving. - - - - - Specifies the identifiers of the metadata items in an 8BIM IPTC digest metadata block. - Microsoft Docs: - - - - [VT_LPSTR] A name that identifies the 8BIM block. - - - [VT_BLOB] The embedded IPTC digest value. - - - - Enables indexing of the JPEG for efficient random access. - Microsoft Docs: - A value specifying whether indexes should be generated immediately or deferred until a future call to IWICBitmapSource::CopyPixels. - The granularity of the indexing, in pixels. - - - - - Loads data from an input stream using the given parameters. - Microsoft Docs: - Pointer to the input stream. - Pointer to the GUID of the preferred vendor . - The WICPersistOptions used to load the stream. - - - - - Notify method is documented only for compliance; its use is not recommended and may be altered or unavailable in the future. Instead, and use RegisterProgressNotification. - Microsoft Docs: - The current frame number. - The operation on which progress is being reported. - The progress value ranging from is 0.0 to 1.0. 0.0 indicates the beginning of the operation. 1.0 indicates the end of the operation. - - - - - Gets the metadata item at the given index. - Microsoft Docs: - The index of the metadata item to retrieve. - Pointer that receives the schema property. - Pointer that receives the id property. - Pointer that receives the metadata value. - - - - - Creates a new instance of IWICBitmapDecoder. - Microsoft Docs: - The GUID for the desired container format. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
-
GUID_ContainerFormatBmp
-
-
-The BMP container format GUID. - -
-
-
GUID_ContainerFormatPng
-
-
-The PNG container format GUID. - -
-
-
GUID_ContainerFormatIco
-
-
-The ICO container format GUID. - -
-
-
GUID_ContainerFormatJpeg
-
-
-The JPEG container format GUID. - -
-
-
GUID_ContainerFormatTiff
-
-
-The TIFF container format GUID. - -
-
-
GUID_ContainerFormatGif
-
-
-The GIF container format GUID. - -
-
-
GUID_ContainerFormatWmp
-
-
-The HD Photo container format GUID. - -
- The GUID for the preferred encoder vendor. - - - - - - - - - - - - - - - - - - -
ValueMeaning
-
-
NULL
-
-
-No preferred codec vendor. - -
-
-
GUID_VendorMicrosoft
-
-
-Prefer to use Microsoft encoder. - -
-
-
GUID_VendorMicrosoftBuiltIn
-
-
-Prefer to use the native Microsoft encoder. - -
- A pointer that receives a pointer to a new IWICBitmapDecoder. You must initialize this IWICBitmapDecoder on a stream using the Initialize method later. -
-
- - - Gets the decoder's current progressive level. - Microsoft Docs: - Indicates the current level specified. - - - - - Sets DDS-specific data. - Microsoft Docs: - Points to the structure where the information is described. - - - - - Exposes methods that transforms an IWICBitmapSource from one color context to another. - Microsoft Docs: - - - - - Returns the size of the metadata content contained by the specified IWICMetadataWriter. The returned size accounts for the header and the length of the metadata. - Microsoft Docs: - The container GUID. - The IWICMetadataWriter that contains the content. - A pointer that receives the size of the metadata content. - - - - - Retrieves the IWICColorContext associated with the image frame. - Microsoft Docs: - The number of color contexts to retrieve. - -This value must be the size of, or smaller than, the size available to ppIColorContexts. - A pointer that receives a pointer to the IWICColorContext objects. - A pointer that receives the number of color contexts contained in the image frame. - - - - - Gets the pointer to the top left pixel in the locked rectangle. - Microsoft Docs: - A pointer that receives the size of the buffer. - A pointer that receives a pointer to the top left pixel in the locked rectangle. - - - - - Specifies the graphic control extension metadata properties that define the transitions between each frame animation for Graphics Interchange Format (GIF) images. - Microsoft Docs: - - - - [VT_UI1] Indicates the disposal requirements. 0 - no disposal, 1 - do not dispose, 2 - restore to background color, 3 - restore to previous. - - - [VT_BOOL] Indicates the user input flag. TRUE if user input should advance to the next frame; otherwise, FALSE. - - - [VT_BOOL] Indicates the transparency flag. TRUE if a transparent color in is in the color table for this frame; otherwise, FALSE. - - - [VT_UI2] Indicates how long to display the next frame before advancing to the next frame, in units of 1/100th of a second. - - - [VT_UI1] Indicates which color in the palette should be treated as transparent. - - - - Gets the current gamma setting of the raw image. - Microsoft Docs: - A pointer that receives the current gamma setting. - - - - - Gets the saturation value of the raw image. - Microsoft Docs: - A pointer that receives the saturation value of the raw image. The default value is the "as-shot" setting. The value range for saturation is 0.0 through 1.0. A value of 0.0 represents an image with a fully de-saturated image, while a value of 1.0 represents the highest amount of saturation that can be applied. - - - - - Resets the current position to the beginning of the enumeration. - Microsoft Docs: - - - - - Specifies the level to retrieve on the next call to CopyPixels. - Microsoft Docs: - Specifies which level to return next. If greater than the total number of levels supported, an error will be returned. - - - - - Writes scan data to a JPEG frame. - Microsoft Docs: - The size of the data in the pbScanData parameter. - The scan data to write. - - - - - Removes the metadata item at the specified index. - Microsoft Docs: - The index of the metadata item to remove. - - - - - Specifies the JPEG luminance table property. - Microsoft Docs: - - - - [VT_UI2|VT_VECTOR] Indicates the metadata property is a luminance table. - - - - Informs the component that the content of the stream it's holding onto may have changed. The component should respond by dirtying any cached information from the stream. - Microsoft Docs: - - - - - Exposes methods that provide additional load and save methods that take WICPersistOptions. - Microsoft Docs: - - - - - Retrieves a copy of the AC Huffman table for the specified scan and table. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The index of the AC Huffman table to retrieve. - A pointer that receives the table data. This parameter must not be NULL. - - - - - Determines if the metadata handler supports padding. - Microsoft Docs: - Pointer that receives TRUE if padding is supported; otherwise, FALSE. - - - - - Exposes methods for accessing and building a color table, primarily for indexed pixel formats. - Microsoft Docs: - - - - - Retrieves a metadata query reader for the frame. - Microsoft Docs: - When this method returns, contains a pointer to the frame's metadata query reader. - - - - - Specifies the DXGI_FORMAT and block information of a DDS format. - Microsoft Docs: - - - - The DXGI_FORMAT - - - The size of a single block in bytes. For DXGI_FORMAT values that are not block-based, the value is equal to the size of a single pixel in bytes. - - - The width of a single block in pixels. For DXGI_FORMAT values that are not block-based, the value is 1. - - - The height of a single block in pixels. For DXGI_FORMAT values that are not block-based, the value is 1. - - - - Gets the metadata header for the metadata writer. - Microsoft Docs: - The format container GUID to obtain the header for. - The size of the pHeader buffer. - Pointer that receives the WICMetadataHeader. - The actual size of the header. - - - - - Sets the contrast value of the raw image. - Microsoft Docs: - The contrast value of the raw image. The default value is the "as-shot" setting. The value range for contrast is 0.0 through 1.0. The 0.0 lower limit represents no contrast applied to the image, while the 1.0 upper limit represents the highest amount of contrast that can be applied. - - - - - Represents an encoder's individual image frames. - Microsoft Docs: - - - - - Creates a new instance of the IWICBitmapDecoder based on the given file handle. - Microsoft Docs: - The file handle to create the decoder from. - The GUID for the preferred decoder vendor. Use NULL if no preferred vendor. - The WICDecodeOptions to use when creating the decoder. - A pointer that receives a pointer to a new IWICBitmapDecoder. - - - - - Extends IWICPixelFormatInfo by providing additional information about a pixel format. - Microsoft Docs: - - - - - Exposes a callback method for raw image change nofications. - Microsoft Docs: - - - - - Exposes methods for color management. - Microsoft Docs: - - - - - Retrieves a value that indicates whether the codec recognizes the pattern within a specified stream. - Microsoft Docs: - The stream to pattern match within. - A pointer that receives TRUE if the patterns match; otherwise, FALSE. - - - - - Creates a new instance of the IWICStream class. - Microsoft Docs: - A pointer that receives a pointer to a new IWICStream. - - - - - Retrieves the name of the device manufacture associated with the codec. - Microsoft Docs: - The size of the device manufacture's name. Use 0 on first call to determine needed buffer size. - Receives the device manufacture's name. Use NULL on first call to determine needed buffer size. - The actual buffer size needed to retrieve the device manufacture's name. - - - - - Retrieves the color table for indexed pixel formats. - Microsoft Docs: - An IWICPalette. A palette can be created using the CreatePalette method. - - - - - Specifies when the progress notification callback should be called. - Microsoft Docs: - - - - The callback should be called when codec operations begin. - - - The callback should be called when codec operations end. - - - The callback should be called frequently to report status. - - - The callback should be called on all available progress notifications. - - - - Gets the metadata format associated with the reader. - Microsoft Docs: - Pointer that receives the metadata format GUID. - - - - - Specifies the capabilities of the decoder. - Microsoft Docs: - - - - Decoder recognizes the image was encoded with an encoder produced by the same vendor. - - - Decoder can decode all the images within an image container. - - - Decoder can decode some of the images within an image container. - - - Decoder can enumerate the metadata blocks within a container format. - - - Decoder can find and decode a thumbnail. - - - - Exposes methods that provide basic information about the registered metadata reader. - Microsoft Docs: - - - - - Fills out the supplied color array with the colors from the internal color table. The color array should be sized according to the return results from GetColorCount. - Microsoft Docs: - The size of the pColors array. - Pointer that receives the colors of the palette. - The actual size needed to obtain the palette colors. - - - - - Specifies the image descriptor metadata properties for Graphics Interchange Format (GIF) frames. - Microsoft Docs: - - - - [VT_UI2] Indicates the X offset at which to locate this frame within the logical screen. - - - [VT_UI2] Indicates the Y offset at which to locate this frame within the logical screen. - - - [VT_UI2] Indicates width of this frame, in pixels. - - - [VT_UI2] Indicates height of this frame, in pixels. - - - [VT_BOOL] Indicates the local color table flag. TRUE if global color table is present; otherwise, FALSE. - - - [VT_BOOL] Indicates the interlace flag. TRUE if image is interlaced; otherwise, FALSE. - - - [VT_BOOL] Indicates the sorted color table flag. TRUE if the color table is sorted from most frequently to least frequently used color; otherwise, FALSE. - - - [VT_UI1] Indicates the value used to calculate the number of bytes contained in the global color table. - -To calculate the actual size of the color table, raise 2 to the value of the field + 1. - - - - Specifies the memory layout of pixel data in a JPEG image scan. - Microsoft Docs: - - - - The pixel data is stored in an interleaved memory layout. - - - The pixel data is stored in a planar memory layout. - - - The pixel data is stored in a progressive layout. - - - Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used. - - - - Obtains a metadata format GUID for a specified container format and vendor that best matches the content within a given stream. - Microsoft Docs: - The container format GUID. - The vendor GUID. - The content stream in which to match a metadata format. - A pointer that receives a metadata format GUID for the given parameters. - - - - - Obtains the short name associated with a given GUID. - Microsoft Docs: - The GUID to retrieve the short name for. - The size of the wzName buffer. - A pointer that receives the short name associated with the GUID. - The actual size needed to retrieve the entire short name associated with the GUID. - - - - - Sets the given metadata item. - Microsoft Docs: - Pointer to the schema property of the metadata item. - Pointer to the id property of the metadata item. - Pointer to the metadata value to set - - - - - Removes a metadata item from a specific location using a metadata query expression. - Microsoft Docs: - The name of the metadata item to remove. - - - - - Retrieves a copy of the quantization table. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The index of the quantization table to retrieve. - A pointer that receives the table data. This parameter must not be NULL. - - - - - Creates a new image encoder object. - Microsoft Docs: - The ID2D1Device object on which the corresponding image encoder is created. - A pointer to a variable that receives a pointer to the IWICImageEncoder interface for the encoder object that you can use to encode Direct2D images. - - - - - Sets the sharpness value of the raw image. - Microsoft Docs: - The sharpness value of the raw image. The default value is the "as-shot" setting. The value range for sharpness is 0.0 through 1.0. The 0.0 lower limit represents no sharpening applied to the image, while the 1.0 upper limit represents the highest amount of sharpness that can be applied. - - - - - Returns the closest dimensions the implementation can natively scale to given the desired dimensions. - Microsoft Docs: - The desired width. A pointer that receives the closest supported width. - The desired height. A pointer that receives the closest supported height. - - - - - Provides access for palette modifications. - Microsoft Docs: - The palette to use for conversion. - - - - - Sets the white point RGB values. - Microsoft Docs: - The red white point value. - The green white point value. - The blue white point value. - - - - - Initializes the frame encoder using the given properties. - Microsoft Docs: - The set of properties to use for IWICBitmapFrameEncode initialization. - - - - - Creates an IWICMetadataReader based on the given parameters. - Microsoft Docs: - The container format GUID to base the reader on. - Pointer to the vendor GUID of the metadata reader. - The WICPersistOptions and WICMetadataCreationOptions options to use when creating the metadata reader. - Pointer to a stream in which to initialize the reader with. If NULL, the metadata reader will be empty. - A pointer that receives a pointer to the new metadata reader - - - - - Gets the current rotation angle. - Microsoft Docs: - A pointer that receives the current rotation angle. - - - - - Retrieves a copy of the quantization table. - Microsoft Docs: - The zero-based index of the scan for which data is retrieved. - The index of the quantization table to retrieve. Valid indices for a given scan can be determined by retrieving the scan header with IWICJpegFrameDecode::GetScanHeader. - A pointer that receives the table data. This parameter must not be NULL. - - - - - Specifies named white balances for raw images. - Microsoft Docs: - - - - The default white balance. - - - A daylight white balance. - - - A cloudy white balance. - - - A shade white balance. - - - A tungsten white balance. - - - A fluorescent white balance. - - - Daylight white balance. - - - A flash white balance. - - - A custom white balance. This is typically used when using a picture (grey-card) as white balance. - - - An automatic balance. - - - An "as shot" white balance. - - - - Specifies the flip and rotation transforms. - Microsoft Docs: - - - - A rotation of 0 degrees. - - - A clockwise rotation of 90 degrees. - - - A clockwise rotation of 180 degrees. - - - A clockwise rotation of 270 degrees. - - - A horizontal flip. Pixels are flipped around the vertical y-axis. - - - A vertical flip. Pixels are flipped around the horizontal x-axis. - - - - Creates a new instance of the IWICComponentInfo class for the given component class identifier (CLSID). - Microsoft Docs: - The CLSID for the desired component. - A pointer that receives a pointer to a new IWICComponentInfo. - - - - - Instructs the object to produce pixels. - Microsoft Docs: - The rectangle to copy. A NULL value specifies the entire bitmap. - The stride of the bitmap - The size of the buffer. - A pointer to the buffer. - - - - - Represents a raw image tone curve. - Microsoft Docs: - - - - The number of tone curve points. - - - The array of tone curve points. - - - - Retrieves the specified frame of the image. - Microsoft Docs: - The particular frame to retrieve. - A pointer that receives a pointer to the IWICBitmapFrameDecode. - - - - - Sets the IWICColorContext objects for the encoder. - Microsoft Docs: - The number of IWICColorContext to set. - A pointer an IWICColorContext pointer containing the color contexts to set for the encoder. - - - - - Gets the pixel format's IWICColorContext. - Microsoft Docs: - Pointer that receives the pixel format's color context. - - - - - Retrieves the device manufacturer of the metadata handler. - Microsoft Docs: - The size of the wzDeviceManufacturer buffer. - Pointer to the buffer that receives the name of the device manufacturer. - The actual string buffer length needed to obtain the entire name of the device manufacturer. - - - - - Removes the metadata writer from the specified index location. - Microsoft Docs: - The index of the metadata writer to remove. - - - - - Sets the global thumbnail for the image. - Microsoft Docs: - The IWICBitmapSource to set as the global thumbnail. - - - - - Specifies the color context types. - Microsoft Docs: - - - - An uninitialized color context. - - - A color context that is a full ICC color profile. - - - A color context that is one of a number of set color spaces (sRGB, AdobeRGB) that are defined in the EXIF specification. - - - - Sets a given number IWICColorContext profiles to the frame. - Microsoft Docs: - The number of IWICColorContext profiles to set. - A pointer to an IWICColorContext pointer containing the color contexts profiles to set to the frame. - - - - - Obtains the name associated with a given schema. - Microsoft Docs: - The metadata format GUID. - The URI string of the schema for which the name is to be retrieved. - The size of the wzName buffer. - A pointer to a buffer that receives the schema's name. - -To obtain the required buffer size, call WICMapSchemaToName with cchName set to 0 and wzName set to NULL. - The actual buffer size needed to retrieve the entire schema name. - - - - - Specifies the Portable Network Graphics (PNG) iTXT chunk metadata properties. - Microsoft Docs: - - - - [VT_LPSTR] Indicates the keywords in the iTXT metadata chunk. - - - [VT_UI1] Indicates whether the text in the iTXT chunk is compressed. 1 if the text is compressed; otherwise, 0. - - - [VT_LPSTR] Indicates the human language used by the translated keyword and the text. - - - [VT_LPWSTR] Indicates a translation of the keyword into the language indicated by the language tag. - - - [VT_LPWSTR] Indicates additional text in the iTXT metadata chunk. - - - - TBD - Microsoft Docs: - The address of a WICPixelFormatNumericRepresentation variable that you've defined. On successful completion, the function sets your variable to the WICPixelFormatNumericRepresentation of the pixel format. - - - - - Creates a new frame to encode. - Microsoft Docs: - A pointer to the newly created frame object. - Points to the location where the array index is returned. - Points to the location where the mip level index is returned. - Points to the location where the slice index is returned. - - - - - Creates an IWICBitmap from a bitmap handle. - Microsoft Docs: - A bitmap handle to create the bitmap from. - A palette handle used to create the bitmap. - The alpha channel options to create the bitmap. - A pointer that receives a pointer to the new bitmap. - - - - - Specifies the JPEG chrominance table property. - Microsoft Docs: - - - - [VT_UI2|VT_VECTOR] Indicates the metadata property is a chrominance table. - - - - Represents a raw image tone curve point. - Microsoft Docs: - - - - The tone curve input. - - - The tone curve output. - - - - Removes the metadata item that matches the given parameters. - Microsoft Docs: - Pointer to the metadata schema property. - Pointer to the metadata id property. - - -
diff --git a/src/Vortice.Win32/Graphics/Dxc.Manual.cs b/src/Vortice.Win32/Graphics/Dxc.Manual.cs index b5c4332..e395d26 100644 --- a/src/Vortice.Win32/Graphics/Dxc.Manual.cs +++ b/src/Vortice.Win32/Graphics/Dxc.Manual.cs @@ -7,318 +7,6 @@ namespace Win32.Graphics.Direct3D.Dxc; public static unsafe partial class Apis { - public const string DXC_ARG_DEBUG = "-Zi"; - - public const string DXC_ARG_SKIP_VALIDATION = "-Vd"; - - public const string DXC_ARG_SKIP_OPTIMIZATIONS = "-Od"; - - public const string DXC_ARG_PACK_MATRIX_ROW_MAJOR = "-Zpr"; - - public const string DXC_ARG_PACK_MATRIX_COLUMN_MAJOR = "-Zpc"; - - public const string DXC_ARG_AVOID_FLOW_CONTROL = "-Gfa"; - - public const string DXC_ARG_PREFER_FLOW_CONTROL = "-Gfp"; - - public const string DXC_ARG_ENABLE_STRICTNESS = "-Ges"; - - public const string DXC_ARG_ENABLE_BACKWARDS_COMPATIBILITY = "-Gec"; - - public const string DXC_ARG_IEEE_STRICTNESS = "-Gis"; - - public const string DXC_ARG_OPTIMIZATION_LEVEL0 = "-O0"; - - public const string DXC_ARG_OPTIMIZATION_LEVEL1 = "-O1"; - - public const string DXC_ARG_OPTIMIZATION_LEVEL2 = "-O2"; - - public const string DXC_ARG_OPTIMIZATION_LEVEL3 = "-O3"; - - public const string DXC_ARG_WARNINGS_ARE_ERRORS = "-WX"; - - public const string DXC_ARG_RESOURCES_MAY_ALIAS = "-res_may_alias"; - - public const string DXC_ARG_ALL_RESOURCES_BOUND = "-all_resources_bound"; - - public const string DXC_ARG_DEBUG_NAME_FOR_SOURCE = "-Zss"; - - public const string DXC_ARG_DEBUG_NAME_FOR_BINARY = "-Zsb"; - - public const string DXC_EXTRA_OUTPUT_NAME_STDOUT = "*stdout*"; - - public const string DXC_EXTRA_OUTPUT_NAME_STDERR = "*stderr*"; - - public static ref readonly Guid CLSID_DxcCompiler - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x93, 0x2D, 0xE2, 0x73, - 0xCE, 0xE6, - 0xF3, 0x47, - 0xB5, - 0xBF, - 0xF0, - 0x66, - 0x4F, - 0x39, - 0xC1, - 0xB0 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcLinker - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x87, 0x80, 0x6A, 0xEF, - 0xEA, 0xB0, - 0x56, 0x4D, - 0x9E, - 0x45, - 0xD0, - 0x7E, - 0x1A, - 0x8B, - 0x78, - 0x06 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcDiaDataSource - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x73, 0x6B, 0x1F, 0xCD, - 0xB0, 0x2A, - 0x4D, 0x48, - 0x8E, - 0xDC, - 0xEB, - 0xE7, - 0xA4, - 0x3C, - 0xA0, - 0x9F - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcCompilerArgs - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x82, 0xAE, 0x56, 0x3E, - 0x4D, 0x22, - 0x0F, 0x47, - 0xA1, - 0xA1, - 0xFE, - 0x30, - 0x16, - 0xEE, - 0x9F, - 0x9D - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcLibrary - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xAF, 0xD6, 0x45, 0x62, - 0xE0, 0x66, - 0xFD, 0x48, - 0x80, - 0xB4, - 0x4D, - 0x27, - 0x17, - 0x96, - 0x74, - 0x8C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcValidator - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x15, 0xE2, 0xA3, 0x8C, - 0x28, 0xF7, - 0xF3, 0x4C, - 0x8C, - 0xDD, - 0x88, - 0xAF, - 0x91, - 0x75, - 0x87, - 0xA1 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcAssembler - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x68, 0xDB, 0x28, 0xD7, - 0x03, 0xF9, - 0x80, 0x4F, - 0x94, - 0xCD, - 0xDC, - 0xCF, - 0x76, - 0xEC, - 0x71, - 0x51 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcContainerReflection - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x89, 0x44, 0xF5, 0xB9, - 0xB8, 0x55, - 0x0C, 0x40, - 0xBA, - 0x3A, - 0x16, - 0x75, - 0xE4, - 0x72, - 0x8B, - 0x91 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcOptimizer - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x9F, 0xD7, 0x2C, 0xAE, - 0x22, 0xCC, - 0x3F, 0x45, - 0x9B, - 0x6B, - 0xB1, - 0x24, - 0xE7, - 0xA5, - 0x20, - 0x4C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcContainerBuilder - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0x94, 0x42, 0x13, 0x94, - 0x1F, 0x41, - 0x74, 0x45, - 0xB4, - 0xD0, - 0x87, - 0x41, - 0xE2, - 0x52, - 0x40, - 0xD2 - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - public static ref readonly Guid CLSID_DxcPdbUtils - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - ReadOnlySpan data = new byte[] { - 0xFB, 0x1D, 0x62, 0x54, - 0xCE, 0xF2, - 0x7E, 0x45, - 0xAE, - 0x8C, - 0xEC, - 0x35, - 0x5F, - 0xAE, - 0xEC, - 0x7C - }; - - Debug.Assert(data.Length == Unsafe.SizeOf()); - return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); - } - } - - [DllImport("dxcompiler.dll", ExactSpelling = true)] - public static extern HResult DxcCreateInstance(Guid* rclsid, Guid* riid, void** ppv); - - [DllImport("dxcompiler.dll", ExactSpelling = true)] - public static extern HResult DxcCreateInstance2(Com.IMalloc* pMalloc, Guid* rclsid, Guid* riid, void** ppv); - public static HResult DxcCreateInstance(in Guid rclsid, Guid* riid, void** ppv) { return DxcCreateInstance( diff --git a/src/Vortice.Win32/Win32.cs b/src/Vortice.Win32/Win32.cs index 30fe47f..d2a5d2f 100644 --- a/src/Vortice.Win32/Win32.cs +++ b/src/Vortice.Win32/Win32.cs @@ -1,9 +1,7 @@ // Copyright © Amer Koleci and Contributors. // Licensed under the MIT License (MIT). See LICENSE in the repository root for more information. - using System.ComponentModel; -using System.Runtime.CompilerServices; namespace Win32; @@ -17,7 +15,11 @@ public static unsafe partial class Apis public static unsafe UuidOfType __uuidof(T value) // for type inference similar to C++'s __uuidof where T : unmanaged, INativeGuid { +#if NET6_0_OR_GREATER + return new UuidOfType(T.NativeGuid); +#else return new UuidOfType(UUID.RIID); +#endif } /// Retrieves the GUID of of a specified type. @@ -28,7 +30,11 @@ public static unsafe partial class Apis public static unsafe UuidOfType __uuidof(T* value) // for type inference similar to C++'s __uuidof where T : unmanaged, INativeGuid { +#if NET6_0_OR_GREATER + return new UuidOfType(T.NativeGuid); +#else return new UuidOfType(UUID.RIID); +#endif } /// Retrieves the GUID of of a specified type. @@ -38,7 +44,11 @@ public static unsafe partial class Apis public static unsafe UuidOfType __uuidof() where T : unmanaged, INativeGuid { +#if NET6_0_OR_GREATER + return new UuidOfType(T.NativeGuid); +#else return new UuidOfType(UUID.RIID); +#endif } /// A proxy type that wraps a pointer to GUID data. Values of this type can be implicitly converted to and assigned to * or parameters. @@ -61,6 +71,7 @@ public static unsafe partial class Apis public static implicit operator Guid*(UuidOfType guid) => guid._value; } +#if !NET6_0_OR_GREATER /// A helper type to provide static GUID buffers for specific types. /// The type to allocate a GUID buffer for. private static unsafe class UUID @@ -74,15 +85,12 @@ public static unsafe partial class Apis /// A pointer to memory holding the value for the current type. private static Guid* CreateRIID() { -#if NET6_0_OR_GREATER - var p = (Guid*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(T), sizeof(Guid)); -#else var p = (Guid*)Marshal.AllocHGlobal(sizeof(Guid)); -#endif *p = typeof(T).GUID; return p; } } +#endif public const int CLSCTX_INPROC_SERVER = 0x1; public const int CLSCTX_INPROC_HANDLER = 0x2;