mirror of
https://github.com/amerkoleci/Vortice.Win32.git
synced 2026-01-14 08:06:02 +08:00
More generaton and handle Graphics.Direct2D.Common.json generation + more D3D11 helpers.
This commit is contained in:
@@ -20,7 +20,9 @@ public static class Program
|
||||
"Graphics.Direct3D11.json",
|
||||
"Graphics.Direct3D12.json",
|
||||
"Graphics.Direct3D.Dxc.json",
|
||||
"Graphics.Direct2D.Common.json",
|
||||
//"Graphics.Imaging.json",
|
||||
//"Graphics.DirectWrite.json",
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, string> s_csNameMappings = new()
|
||||
@@ -75,6 +77,15 @@ public static class Program
|
||||
|
||||
{ "Graphics.Direct3D.D3DVECTOR", "Vector3" },
|
||||
{ "Graphics.Direct3D.D3DMATRIX", "Matrix4x4" },
|
||||
{ "Graphics.Direct2D.Common.D2D_MATRIX_3X2_F", "Matrix3x2" },
|
||||
{ "Graphics.Direct2D.Common.D2D_MATRIX_4X3_F", "Matrix4x3" },
|
||||
{ "Graphics.Direct2D.Common.D2D_MATRIX_4X4_F", "Matrix4x4" },
|
||||
{ "Graphics.Direct2D.Common.D2D_MATRIX_5X4_F", "Matrix5x4" },
|
||||
{ "Graphics.Direct2D.Common.D2D_POINT_2F", "System.Drawing.PointF" },
|
||||
{ "Graphics.Direct2D.Common.D2D_VECTOR_2F", "Vector2" },
|
||||
{ "Graphics.Direct2D.Common.D2D_VECTOR_3F", "Vector3" },
|
||||
{ "Graphics.Direct2D.Common.D2D_VECTOR_4F", "Vector4" },
|
||||
{ "Graphics.Direct2D.Common.D2D_SIZE_F", "System.Drawing.SizeF" },
|
||||
|
||||
// TODO: Understand those ->
|
||||
{ "Foundation.RECT", "RawRect" },
|
||||
@@ -488,6 +499,14 @@ public static class Program
|
||||
"SourceNot2D",
|
||||
"DestinationNot2D",
|
||||
"CreateFence",
|
||||
"SynchronizedChannel",
|
||||
"DecoderBeginFrame",
|
||||
"VideoProcessorGetStreamMirror",
|
||||
"BackbufferNotSupported",
|
||||
"DimensionsTooLarge",
|
||||
"InvalidMipLevel",
|
||||
"ColorMatrix",
|
||||
"StencilOp",
|
||||
};
|
||||
|
||||
private static readonly HashSet<string> s_preserveCaps = new(StringComparer.OrdinalIgnoreCase)
|
||||
@@ -516,6 +535,9 @@ public static class Program
|
||||
"D3D",
|
||||
"D3D11",
|
||||
"D3D12",
|
||||
"D2D",
|
||||
"D2D1",
|
||||
"DWRITE",
|
||||
};
|
||||
|
||||
|
||||
@@ -610,6 +632,9 @@ public static class Program
|
||||
"D3D10",
|
||||
"D3D11",
|
||||
"D3D12",
|
||||
"D2D",
|
||||
"D2D1",
|
||||
"DWRITE",
|
||||
};
|
||||
|
||||
private static readonly HashSet<string> s_ignoredParts = new(StringComparer.OrdinalIgnoreCase)
|
||||
@@ -734,6 +759,7 @@ public static class Program
|
||||
}
|
||||
|
||||
// Generate docs
|
||||
//DocGenerator.Generate(new[] { "DWRITE" }, Path.Combine(outputPath, "DirectWrite.xml"));
|
||||
//DocGenerator.Generate(new[] { "D3D" }, Path.Combine(outputPath, "Direct3D.xml"));
|
||||
//DocGenerator.Generate(new[] { "DXGI" }, Path.Combine(outputPath, "Dxgi.xml"));
|
||||
//DocGenerator.Generate(new[] { "D3D11" }, Path.Combine(outputPath, "Direct3D11.xml"));
|
||||
@@ -965,7 +991,8 @@ public static class Program
|
||||
foreach (ApiType structType in api.Types.Where(item => item.Kind.ToLowerInvariant() == "struct"))
|
||||
{
|
||||
if (structType.Name.StartsWith("D3DX11") ||
|
||||
structType.Name.StartsWith("CD3D11"))
|
||||
structType.Name.StartsWith("CD3D11") ||
|
||||
structType.Name == "D2D_COLOR_F")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1298,6 +1325,11 @@ public static class Program
|
||||
writer.WriteLine("[StructLayout(LayoutKind.Explicit)]");
|
||||
}
|
||||
|
||||
if (structType.Name == "D2D_MATRIX_3X2_F")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
using (writer.PushBlock($"public partial struct {csTypeName}"))
|
||||
{
|
||||
int fieldIndex = 0;
|
||||
@@ -1409,6 +1441,9 @@ public static class Program
|
||||
{
|
||||
writer.WriteLine("[FieldOffset(0)]");
|
||||
}
|
||||
|
||||
fieldValueName = CleanupName(fieldValueName);
|
||||
|
||||
writer.WriteLine($"public {unsafePrefix}{fieldTypeName} {fieldValueName};");
|
||||
}
|
||||
|
||||
@@ -1661,6 +1696,8 @@ public static class Program
|
||||
}
|
||||
}
|
||||
|
||||
parameterName = CleanupName(parameterName);
|
||||
|
||||
argumentBuilder.Append(parameterType).Append(' ').Append(parameterName);
|
||||
//if (isOptional == true)
|
||||
//{
|
||||
@@ -1761,6 +1798,16 @@ public static class Program
|
||||
return typeName.Replace(api + ".", "");
|
||||
}
|
||||
|
||||
private static string CleanupName(string name)
|
||||
{
|
||||
if (name == "string")
|
||||
{
|
||||
return "@string";
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
private static string GetDataTypeName(string typeName, out string prefix)
|
||||
{
|
||||
prefix = typeName;
|
||||
|
||||
485
src/Vortice.Win32/Generated/Graphics/Direct2D.Common.cs
Normal file
485
src/Vortice.Win32/Generated/Graphics/Direct2D.Common.cs
Normal file
@@ -0,0 +1,485 @@
|
||||
// ------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
#if !NET6_0_OR_GREATER
|
||||
using MemoryMarshal = Win32.MemoryMarshal;
|
||||
#endif
|
||||
|
||||
namespace Win32.Graphics.Direct2D.Common;
|
||||
|
||||
public static partial class Apis
|
||||
{
|
||||
}
|
||||
|
||||
#region Enums
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_ALPHA_MODE"]/*' />
|
||||
/// <unmanaged>D2D1_ALPHA_MODE</unmanaged>
|
||||
public enum AlphaMode : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_ALPHA_MODE::D2D1_ALPHA_MODE_UNKNOWN"]/*' />
|
||||
/// <unmanaged>D2D1_ALPHA_MODE_UNKNOWN</unmanaged>
|
||||
Unknown = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_ALPHA_MODE::D2D1_ALPHA_MODE_PREMULTIPLIED"]/*' />
|
||||
/// <unmanaged>D2D1_ALPHA_MODE_PREMULTIPLIED</unmanaged>
|
||||
Premultiplied = 1,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_ALPHA_MODE::D2D1_ALPHA_MODE_STRAIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_ALPHA_MODE_STRAIGHT</unmanaged>
|
||||
Straight = 2,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_ALPHA_MODE::D2D1_ALPHA_MODE_IGNORE"]/*' />
|
||||
/// <unmanaged>D2D1_ALPHA_MODE_IGNORE</unmanaged>
|
||||
Ignore = 3,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FIGURE_BEGIN"]/*' />
|
||||
/// <unmanaged>D2D1_FIGURE_BEGIN</unmanaged>
|
||||
public enum FigureBegin : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FIGURE_BEGIN::D2D1_FIGURE_BEGIN_FILLED"]/*' />
|
||||
/// <unmanaged>D2D1_FIGURE_BEGIN_FILLED</unmanaged>
|
||||
Filled = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FIGURE_BEGIN::D2D1_FIGURE_BEGIN_HOLLOW"]/*' />
|
||||
/// <unmanaged>D2D1_FIGURE_BEGIN_HOLLOW</unmanaged>
|
||||
Hollow = 1,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FIGURE_END"]/*' />
|
||||
/// <unmanaged>D2D1_FIGURE_END</unmanaged>
|
||||
public enum FigureEnd : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FIGURE_END::D2D1_FIGURE_END_OPEN"]/*' />
|
||||
/// <unmanaged>D2D1_FIGURE_END_OPEN</unmanaged>
|
||||
Open = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FIGURE_END::D2D1_FIGURE_END_CLOSED"]/*' />
|
||||
/// <unmanaged>D2D1_FIGURE_END_CLOSED</unmanaged>
|
||||
Closed = 1,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PATH_SEGMENT"]/*' />
|
||||
/// <unmanaged>D2D1_PATH_SEGMENT</unmanaged>
|
||||
[Flags]
|
||||
public enum PathSegment : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PATH_SEGMENT::D2D1_PATH_SEGMENT_NONE"]/*' />
|
||||
/// <unmanaged>D2D1_PATH_SEGMENT_NONE</unmanaged>
|
||||
None = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PATH_SEGMENT::D2D1_PATH_SEGMENT_FORCE_UNSTROKED"]/*' />
|
||||
/// <unmanaged>D2D1_PATH_SEGMENT_FORCE_UNSTROKED</unmanaged>
|
||||
ForceUnstroked = 1,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PATH_SEGMENT::D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN"]/*' />
|
||||
/// <unmanaged>D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN</unmanaged>
|
||||
ForceRoundLineJoin = 2,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FILL_MODE"]/*' />
|
||||
/// <unmanaged>D2D1_FILL_MODE</unmanaged>
|
||||
public enum FillMode : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FILL_MODE::D2D1_FILL_MODE_ALTERNATE"]/*' />
|
||||
/// <unmanaged>D2D1_FILL_MODE_ALTERNATE</unmanaged>
|
||||
Alternate = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_FILL_MODE::D2D1_FILL_MODE_WINDING"]/*' />
|
||||
/// <unmanaged>D2D1_FILL_MODE_WINDING</unmanaged>
|
||||
Winding = 1,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BORDER_MODE"]/*' />
|
||||
/// <unmanaged>D2D1_BORDER_MODE</unmanaged>
|
||||
public enum BorderMode : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BORDER_MODE::D2D1_BORDER_MODE_SOFT"]/*' />
|
||||
/// <unmanaged>D2D1_BORDER_MODE_SOFT</unmanaged>
|
||||
Soft = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BORDER_MODE::D2D1_BORDER_MODE_HARD"]/*' />
|
||||
/// <unmanaged>D2D1_BORDER_MODE_HARD</unmanaged>
|
||||
Hard = 1,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE</unmanaged>
|
||||
public enum BlendMode : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_MULTIPLY"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_MULTIPLY</unmanaged>
|
||||
Multiply = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_SCREEN"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_SCREEN</unmanaged>
|
||||
Screen = 1,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_DARKEN"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_DARKEN</unmanaged>
|
||||
Darken = 2,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_LIGHTEN"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_LIGHTEN</unmanaged>
|
||||
Lighten = 3,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_DISSOLVE"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_DISSOLVE</unmanaged>
|
||||
Dissolve = 4,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_COLOR_BURN"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_COLOR_BURN</unmanaged>
|
||||
ColorBurn = 5,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_LINEAR_BURN"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_LINEAR_BURN</unmanaged>
|
||||
LinearBurn = 6,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_DARKER_COLOR"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_DARKER_COLOR</unmanaged>
|
||||
DarkerColor = 7,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_LIGHTER_COLOR"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_LIGHTER_COLOR</unmanaged>
|
||||
LighterColor = 8,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_COLOR_DODGE"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_COLOR_DODGE</unmanaged>
|
||||
ColorDodge = 9,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_LINEAR_DODGE"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_LINEAR_DODGE</unmanaged>
|
||||
LinearDodge = 10,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_OVERLAY"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_OVERLAY</unmanaged>
|
||||
Overlay = 11,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_SOFT_LIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_SOFT_LIGHT</unmanaged>
|
||||
SoftLight = 12,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_HARD_LIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_HARD_LIGHT</unmanaged>
|
||||
HardLight = 13,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_VIVID_LIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_VIVID_LIGHT</unmanaged>
|
||||
VividLight = 14,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_LINEAR_LIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_LINEAR_LIGHT</unmanaged>
|
||||
LinearLight = 15,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_PIN_LIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_PIN_LIGHT</unmanaged>
|
||||
PinLight = 16,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_HARD_MIX"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_HARD_MIX</unmanaged>
|
||||
HardMix = 17,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_DIFFERENCE"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_DIFFERENCE</unmanaged>
|
||||
Difference = 18,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_EXCLUSION"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_EXCLUSION</unmanaged>
|
||||
Exclusion = 19,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_HUE"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_HUE</unmanaged>
|
||||
Hue = 20,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_SATURATION"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_SATURATION</unmanaged>
|
||||
Saturation = 21,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_COLOR"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_COLOR</unmanaged>
|
||||
Color = 22,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_LUMINOSITY"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_LUMINOSITY</unmanaged>
|
||||
Luminosity = 23,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_SUBTRACT"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_SUBTRACT</unmanaged>
|
||||
Subtract = 24,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BLEND_MODE::D2D1_BLEND_MODE_DIVISION"]/*' />
|
||||
/// <unmanaged>D2D1_BLEND_MODE_DIVISION</unmanaged>
|
||||
Division = 25,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLORMATRIX_ALPHA_MODE"]/*' />
|
||||
/// <unmanaged>D2D1_COLORMATRIX_ALPHA_MODE</unmanaged>
|
||||
public enum ColorMatrixAlphaMode : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLORMATRIX_ALPHA_MODE::D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED"]/*' />
|
||||
/// <unmanaged>D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED</unmanaged>
|
||||
Premultiplied = 1,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLORMATRIX_ALPHA_MODE::D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT"]/*' />
|
||||
/// <unmanaged>D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT</unmanaged>
|
||||
Straight = 2,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_TURBULENCE_NOISE"]/*' />
|
||||
/// <unmanaged>D2D1_TURBULENCE_NOISE</unmanaged>
|
||||
public enum TurbulenceNoise : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_TURBULENCE_NOISE::D2D1_TURBULENCE_NOISE_FRACTAL_SUM"]/*' />
|
||||
/// <unmanaged>D2D1_TURBULENCE_NOISE_FRACTAL_SUM</unmanaged>
|
||||
FractalSum = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_TURBULENCE_NOISE::D2D1_TURBULENCE_NOISE_TURBULENCE"]/*' />
|
||||
/// <unmanaged>D2D1_TURBULENCE_NOISE_TURBULENCE</unmanaged>
|
||||
Turbulence = 1,
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE</unmanaged>
|
||||
public enum CompositeMode : uint
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_SOURCE_OVER"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_SOURCE_OVER</unmanaged>
|
||||
SourceOver = 0,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_DESTINATION_OVER"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_DESTINATION_OVER</unmanaged>
|
||||
DestinationOver = 1,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_SOURCE_IN"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_SOURCE_IN</unmanaged>
|
||||
SourceIn = 2,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_DESTINATION_IN"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_DESTINATION_IN</unmanaged>
|
||||
DestinationIn = 3,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_SOURCE_OUT"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_SOURCE_OUT</unmanaged>
|
||||
SourceOut = 4,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_DESTINATION_OUT"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_DESTINATION_OUT</unmanaged>
|
||||
DestinationOut = 5,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_SOURCE_ATOP"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_SOURCE_ATOP</unmanaged>
|
||||
SourceAtop = 6,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_DESTINATION_ATOP"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_DESTINATION_ATOP</unmanaged>
|
||||
DestinationAtop = 7,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_XOR"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_XOR</unmanaged>
|
||||
Xor = 8,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_PLUS"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_PLUS</unmanaged>
|
||||
Plus = 9,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_SOURCE_COPY"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_SOURCE_COPY</unmanaged>
|
||||
SourceCopy = 10,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY</unmanaged>
|
||||
BoundedSourceCopy = 11,
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COMPOSITE_MODE::D2D1_COMPOSITE_MODE_MASK_INVERT"]/*' />
|
||||
/// <unmanaged>D2D1_COMPOSITE_MODE_MASK_INVERT</unmanaged>
|
||||
MaskInvert = 12,
|
||||
}
|
||||
|
||||
#endregion Enums
|
||||
|
||||
#region Structs
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLOR_F"]/*' />
|
||||
/// <unmanaged>D2D1_COLOR_F</unmanaged>
|
||||
public partial struct ColorF
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLOR_F::r"]/*' />
|
||||
public float r;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLOR_F::g"]/*' />
|
||||
public float g;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLOR_F::b"]/*' />
|
||||
public float b;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_COLOR_F::a"]/*' />
|
||||
public float a;
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PIXEL_FORMAT"]/*' />
|
||||
/// <unmanaged>D2D1_PIXEL_FORMAT</unmanaged>
|
||||
public partial struct PixelFormat
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PIXEL_FORMAT::format"]/*' />
|
||||
public Graphics.Dxgi.Common.Format format;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_PIXEL_FORMAT::alphaMode"]/*' />
|
||||
public AlphaMode alphaMode;
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_POINT_2U"]/*' />
|
||||
/// <unmanaged>D2D_POINT_2U</unmanaged>
|
||||
public partial struct Point2u
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_POINT_2U::x"]/*' />
|
||||
public uint x;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_POINT_2U::y"]/*' />
|
||||
public uint y;
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_F"]/*' />
|
||||
/// <unmanaged>D2D_RECT_F</unmanaged>
|
||||
public partial struct RectF
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_F::left"]/*' />
|
||||
public float left;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_F::top"]/*' />
|
||||
public float top;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_F::right"]/*' />
|
||||
public float right;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_F::bottom"]/*' />
|
||||
public float bottom;
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_U"]/*' />
|
||||
/// <unmanaged>D2D_RECT_U</unmanaged>
|
||||
public partial struct RectU
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_U::left"]/*' />
|
||||
public uint left;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_U::top"]/*' />
|
||||
public uint top;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_U::right"]/*' />
|
||||
public uint right;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_RECT_U::bottom"]/*' />
|
||||
public uint bottom;
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_SIZE_U"]/*' />
|
||||
/// <unmanaged>D2D_SIZE_U</unmanaged>
|
||||
public partial struct SizeU
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_SIZE_U::width"]/*' />
|
||||
public uint width;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D_SIZE_U::height"]/*' />
|
||||
public uint height;
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BEZIER_SEGMENT"]/*' />
|
||||
/// <unmanaged>D2D1_BEZIER_SEGMENT</unmanaged>
|
||||
public partial struct BezierSegment
|
||||
{
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BEZIER_SEGMENT::point1"]/*' />
|
||||
public System.Drawing.PointF point1;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BEZIER_SEGMENT::point2"]/*' />
|
||||
public System.Drawing.PointF point2;
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="D2D1_BEZIER_SEGMENT::point3"]/*' />
|
||||
public System.Drawing.PointF point3;
|
||||
}
|
||||
|
||||
#endregion Structs
|
||||
|
||||
#region COM Types
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink"]/*' />
|
||||
/// <unmanaged>ID2D1SimplifiedGeometrySink</unmanaged>
|
||||
[Guid("2cd9069e-12e2-11dc-9fed-001143a055f9")]
|
||||
[NativeTypeName("struct ID2D1SimplifiedGeometrySink : IUnknown")]
|
||||
[NativeInheritance("IUnknown")]
|
||||
public unsafe partial struct ID2D1SimplifiedGeometrySink
|
||||
{
|
||||
public static ref readonly Guid IID_ID2D1SimplifiedGeometrySink
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
get
|
||||
{
|
||||
ReadOnlySpan<byte> data = new byte[] {
|
||||
0x9E, 0x06, 0xD9, 0x2C,
|
||||
0xE2, 0x12,
|
||||
0xDC, 0x11,
|
||||
0x9F,
|
||||
0xED,
|
||||
0x00,
|
||||
0x11,
|
||||
0x43,
|
||||
0xA0,
|
||||
0x55,
|
||||
0xF9
|
||||
};
|
||||
|
||||
Debug.Assert(data.Length == Unsafe.SizeOf<Guid>());
|
||||
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
|
||||
}
|
||||
}
|
||||
|
||||
public static Guid* NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ID2D1SimplifiedGeometrySink));
|
||||
|
||||
public void** lpVtbl;
|
||||
|
||||
/// <inheritdoc cref="IUnknown.QueryInterface" />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(0)]
|
||||
public HResult QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject)
|
||||
{
|
||||
return ((delegate* unmanaged[Stdcall]<IUnknown*, Guid*, void**, int>)(lpVtbl[0]))((IUnknown*)Unsafe.AsPointer(ref this), riid, ppvObject);
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="IUnknown.AddRef" />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(1)]
|
||||
[return: NativeTypeName("ULONG")]
|
||||
public uint AddRef()
|
||||
{
|
||||
return ((delegate* unmanaged[Stdcall]<IUnknown*, uint>)(lpVtbl[1]))((IUnknown*)Unsafe.AsPointer(ref this));
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="IUnknown.Release" />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(2)]
|
||||
[return: NativeTypeName("ULONG")]
|
||||
public uint Release()
|
||||
{
|
||||
return ((delegate* unmanaged[Stdcall]<IUnknown*, uint>)(lpVtbl[2]))((IUnknown*)Unsafe.AsPointer(ref this));
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::SetFillMode"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(3)]
|
||||
public void SetFillMode(FillMode fillMode)
|
||||
{
|
||||
((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, FillMode, void>)(lpVtbl[3]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this), fillMode);
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::SetSegmentFlags"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(4)]
|
||||
public void SetSegmentFlags(PathSegment vertexFlags)
|
||||
{
|
||||
((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, PathSegment, void>)(lpVtbl[4]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this), vertexFlags);
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::BeginFigure"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(5)]
|
||||
public void BeginFigure(System.Drawing.PointF* startPoint, FigureBegin figureBegin)
|
||||
{
|
||||
((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, System.Drawing.PointF*, FigureBegin, void>)(lpVtbl[5]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this), startPoint, figureBegin);
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::AddLines"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(6)]
|
||||
public void AddLines(System.Drawing.PointF** points, uint pointsCount)
|
||||
{
|
||||
((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, System.Drawing.PointF**, uint, void>)(lpVtbl[6]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this), points, pointsCount);
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::AddBeziers"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(7)]
|
||||
public void AddBeziers(BezierSegment* beziers, uint beziersCount)
|
||||
{
|
||||
((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, BezierSegment*, uint, void>)(lpVtbl[7]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this), beziers, beziersCount);
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::EndFigure"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(8)]
|
||||
public void EndFigure(FigureEnd figureEnd)
|
||||
{
|
||||
((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, FigureEnd, void>)(lpVtbl[8]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this), figureEnd);
|
||||
}
|
||||
|
||||
/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1SimplifiedGeometrySink::Close"]/*' />
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[VtblIndex(9)]
|
||||
public HResult Close()
|
||||
{
|
||||
return ((delegate* unmanaged[Stdcall]<ID2D1SimplifiedGeometrySink*, int>)(lpVtbl[9]))((ID2D1SimplifiedGeometrySink*)Unsafe.AsPointer(ref this));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion Com Types
|
||||
|
||||
@@ -6407,10 +6407,10 @@ public enum MessageId : int
|
||||
ReleasedecoderbufferNotlocked = 3145783,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM</unmanaged>
|
||||
DecoderbeginframeNullParam = 3145784,
|
||||
DecoderBeginFrameNullParam = 3145784,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD</unmanaged>
|
||||
DecoderbeginframeHazard = 3145785,
|
||||
DecoderBeginFrameHazard = 3145785,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM</unmanaged>
|
||||
DecoderendframeNullParam = 3145786,
|
||||
@@ -7370,7 +7370,7 @@ public enum MessageId : int
|
||||
Videoprocessorgetstreamcolorspace1NullParam = 3146104,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM</unmanaged>
|
||||
VideoprocessorgetstreammirrorNullParam = 3146105,
|
||||
VideoProcessorGetStreamMirrorNullParam = 3146105,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM</unmanaged>
|
||||
RecommendvideodecoderdownsamplingNullParam = 3146106,
|
||||
@@ -7553,7 +7553,7 @@ public enum MessageId : int
|
||||
JpegDecodeNotSupported = 3146169,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE</unmanaged>
|
||||
JpegDecodeDimensionstoolarge = 3146170,
|
||||
JpegDecodeDimensionsTooLarge = 3146170,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS</unmanaged>
|
||||
JpegDecodeInvalidComponents = 3146171,
|
||||
@@ -7574,7 +7574,7 @@ public enum MessageId : int
|
||||
JpegDecodeInvalidSubresource = 3146176,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL</unmanaged>
|
||||
JpegDecodeInvalidmiplevel = 3146177,
|
||||
JpegDecodeInvalidMipLevel = 3146177,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX</unmanaged>
|
||||
JpegDecodeEmptydestbox = 3146178,
|
||||
@@ -7649,7 +7649,7 @@ public enum MessageId : int
|
||||
JpegDecodeUnsupporteddsttextureusage = 3146201,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED</unmanaged>
|
||||
JpegDecodeBackbuffernotsupported = 3146202,
|
||||
JpegDecodeBackbufferNotSupported = 3146202,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS</unmanaged>
|
||||
JpegDecodeUnsupprtedcopyflags = 3146203,
|
||||
@@ -7685,10 +7685,10 @@ public enum MessageId : int
|
||||
JpegEncodeInvalidSubresource = 3146213,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL</unmanaged>
|
||||
JpegEncodeInvalidmiplevel = 3146214,
|
||||
JpegEncodeInvalidMipLevel = 3146214,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE</unmanaged>
|
||||
JpegEncodeDimensionstoolarge = 3146215,
|
||||
JpegEncodeDimensionsTooLarge = 3146215,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGENCODE_HAZARD"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGENCODE_HAZARD</unmanaged>
|
||||
JpegEncodeHazard = 3146216,
|
||||
@@ -7703,7 +7703,7 @@ public enum MessageId : int
|
||||
JpegEncodeUnsupportedsrctextureusage = 3146219,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED</unmanaged>
|
||||
JpegEncodeBackbuffernotsupported = 3146220,
|
||||
JpegEncodeBackbufferNotSupported = 3146220,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY</unmanaged>
|
||||
CreateQueryOrPredicateUnsupportedcontextttypeforquery = 3146221,
|
||||
@@ -7787,7 +7787,7 @@ public enum MessageId : int
|
||||
Videoprocessorgetstreamcolorspace1InvalidStream = 3146247,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_INVALIDSTREAM"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_INVALIDSTREAM</unmanaged>
|
||||
VideoprocessorgetstreammirrorInvalidStream = 3146248,
|
||||
VideoProcessorGetStreamMirrorInvalidStream = 3146248,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_CREATE_FENCE"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_CREATE_FENCE</unmanaged>
|
||||
CreateFence = 3146249,
|
||||
@@ -7799,13 +7799,13 @@ public enum MessageId : int
|
||||
DestroyFence = 3146251,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_CREATE_SYNCHRONIZEDCHANNEL"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_CREATE_SYNCHRONIZEDCHANNEL</unmanaged>
|
||||
CreateSynchronizedchannel = 3146252,
|
||||
CreateSynchronizedChannel = 3146252,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_LIVE_SYNCHRONIZEDCHANNEL"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_LIVE_SYNCHRONIZEDCHANNEL</unmanaged>
|
||||
LiveSynchronizedchannel = 3146253,
|
||||
LiveSynchronizedChannel = 3146253,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DESTROY_SYNCHRONIZEDCHANNEL"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DESTROY_SYNCHRONIZEDCHANNEL</unmanaged>
|
||||
DestroySynchronizedchannel = 3146254,
|
||||
DestroySynchronizedChannel = 3146254,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_CREATEFENCE_INVALIDFLAGS"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_CREATEFENCE_INVALIDFLAGS</unmanaged>
|
||||
CreateFenceInvalidFlags = 3146255,
|
||||
@@ -7817,22 +7817,22 @@ public enum MessageId : int
|
||||
NegotiatecryptosessionkeyexchangemtNotSupported = 3146259,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT_COUNT"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT_COUNT</unmanaged>
|
||||
DecoderbeginframeInvalidHistogramComponentCount = 3146260,
|
||||
DecoderBeginFrameInvalidHistogramComponentCount = 3146260,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_COMPONENT</unmanaged>
|
||||
DecoderbeginframeInvalidHistogramComponent = 3146261,
|
||||
DecoderBeginFrameInvalidHistogramComponent = 3146261,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_SIZE"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_SIZE</unmanaged>
|
||||
DecoderbeginframeInvalidHistogramBufferSize = 3146262,
|
||||
DecoderBeginFrameInvalidHistogramBufferSize = 3146262,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_USAGE"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_USAGE</unmanaged>
|
||||
DecoderbeginframeInvalidHistogramBufferUsage = 3146263,
|
||||
DecoderBeginFrameInvalidHistogramBufferUsage = 3146263,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_MISC_FLAGS"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_MISC_FLAGS</unmanaged>
|
||||
DecoderbeginframeInvalidHistogramBufferMiscFlags = 3146264,
|
||||
DecoderBeginFrameInvalidHistogramBufferMiscFlags = 3146264,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_OFFSET"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_DECODERBEGINFRAME_INVALID_HISTOGRAM_BUFFER_OFFSET</unmanaged>
|
||||
DecoderbeginframeInvalidHistogramBufferOffset = 3146265,
|
||||
DecoderBeginFrameInvalidHistogramBufferOffset = 3146265,
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_MESSAGE_ID::D3D11_MESSAGE_ID_CREATE_TRACKEDWORKLOAD"]/*' />
|
||||
/// <unmanaged>D3D11_MESSAGE_ID_CREATE_TRACKEDWORKLOAD</unmanaged>
|
||||
CreateTrackedworkload = 3146266,
|
||||
@@ -8571,7 +8571,7 @@ public partial struct Box
|
||||
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_DEPTH_STENCILOP_DESC"]/*' />
|
||||
/// <unmanaged>D3D11_DEPTH_STENCILOP_DESC</unmanaged>
|
||||
public partial struct DepthStencilopDescription
|
||||
public partial struct DepthStencilOpDescription
|
||||
{
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_DEPTH_STENCILOP_DESC::StencilFailOp"]/*' />
|
||||
public StencilOp StencilFailOp;
|
||||
@@ -8609,10 +8609,10 @@ public partial struct DepthStencilDescription
|
||||
public byte StencilWriteMask;
|
||||
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_DEPTH_STENCIL_DESC::FrontFace"]/*' />
|
||||
public DepthStencilopDescription FrontFace;
|
||||
public DepthStencilOpDescription FrontFace;
|
||||
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_DEPTH_STENCIL_DESC::BackFace"]/*' />
|
||||
public DepthStencilopDescription BackFace;
|
||||
public DepthStencilOpDescription BackFace;
|
||||
}
|
||||
|
||||
/// <include file='../Direct3D11.xml' path='doc/member[@name="D3D11_RENDER_TARGET_BLEND_DESC"]/*' />
|
||||
|
||||
@@ -7043,7 +7043,7 @@ public partial struct Box
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC"]/*' />
|
||||
/// <unmanaged>D3D12_DEPTH_STENCILOP_DESC</unmanaged>
|
||||
public partial struct DepthStencilopDescription
|
||||
public partial struct DepthStencilOpDescription
|
||||
{
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC::StencilFailOp"]/*' />
|
||||
public StencilOp StencilFailOp;
|
||||
@@ -7081,10 +7081,10 @@ public partial struct DepthStencilDescription
|
||||
public byte StencilWriteMask;
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::FrontFace"]/*' />
|
||||
public DepthStencilopDescription FrontFace;
|
||||
public DepthStencilOpDescription FrontFace;
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::BackFace"]/*' />
|
||||
public DepthStencilopDescription BackFace;
|
||||
public DepthStencilOpDescription BackFace;
|
||||
}
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1"]/*' />
|
||||
@@ -7110,10 +7110,10 @@ public partial struct DepthStencilDescription1
|
||||
public byte StencilWriteMask;
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::FrontFace"]/*' />
|
||||
public DepthStencilopDescription FrontFace;
|
||||
public DepthStencilOpDescription FrontFace;
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::BackFace"]/*' />
|
||||
public DepthStencilopDescription BackFace;
|
||||
public DepthStencilOpDescription BackFace;
|
||||
|
||||
/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::DepthBoundsTestEnable"]/*' />
|
||||
public Bool32 DepthBoundsTestEnable;
|
||||
|
||||
198
src/Vortice.Win32/Graphics/Direct2D/Matrix4x3.cs
Normal file
198
src/Vortice.Win32/Graphics/Direct2D/Matrix4x3.cs
Normal file
@@ -0,0 +1,198 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Win32.Graphics.Direct2D.Common;
|
||||
|
||||
/// <summary>
|
||||
/// Describes a 4-by-3 floating point matrix.
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4)]
|
||||
public readonly struct Matrix4x3 : IEquatable<Matrix4x3>, IFormattable
|
||||
{
|
||||
/// <summary>
|
||||
/// Value at row 1 column 1.
|
||||
/// </summary>
|
||||
public readonly float M11;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 1 column 2.
|
||||
/// </summary>
|
||||
public readonly float M12;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 1 column 3.
|
||||
/// </summary>
|
||||
public readonly float M13;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 1.
|
||||
/// </summary>
|
||||
public readonly float M21;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 2.
|
||||
/// </summary>
|
||||
public readonly float M22;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 3.
|
||||
/// </summary>
|
||||
public readonly float M23;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 1.
|
||||
/// </summary>
|
||||
public readonly float M31;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 2.
|
||||
/// </summary>
|
||||
public readonly float M32;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 3.
|
||||
/// </summary>
|
||||
public readonly float M33;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 1.
|
||||
/// </summary>
|
||||
public readonly float M41;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 2.
|
||||
/// </summary>
|
||||
public readonly float M42;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 3.
|
||||
/// </summary>
|
||||
public readonly float M43;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="Matrix3x3"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="value">The value that will be assigned to all components.</param>
|
||||
public Matrix4x3(float value)
|
||||
{
|
||||
M11 = M12 = M13 =
|
||||
M21 = M22 = M23 =
|
||||
M31 = M32 = M33 =
|
||||
M41 = M42 = M43 = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="Matrix4x3"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="m11">The value to assign at row 1 column 1 of the Matrix4x3.</param>
|
||||
/// <param name="m12">The value to assign at row 1 column 2 of the Matrix4x3.</param>
|
||||
/// <param name="m13">The value to assign at row 1 column 3 of the Matrix4x3.</param>
|
||||
/// <param name="m21">The value to assign at row 2 column 1 of the Matrix4x3.</param>
|
||||
/// <param name="m22">The value to assign at row 2 column 2 of the Matrix4x3.</param>
|
||||
/// <param name="m23">The value to assign at row 2 column 3 of the Matrix4x3.</param>
|
||||
/// <param name="m31">The value to assign at row 3 column 1 of the Matrix4x3.</param>
|
||||
/// <param name="m32">The value to assign at row 3 column 2 of the Matrix4x3.</param>
|
||||
/// <param name="m33">The value to assign at row 3 column 3 of the Matrix4x3.</param>
|
||||
/// <param name="m41">The value to assign at row 4 column 1 of the Matrix4x3.</param>
|
||||
/// <param name="m42">The value to assign at row 4 column 2 of the Matrix4x3.</param>
|
||||
/// <param name="m43">The value to assign at row 4 column 3 of the Matrix4x3.</param>
|
||||
public Matrix4x3(
|
||||
float m11, float m12, float m13,
|
||||
float m21, float m22, float m23,
|
||||
float m31, float m32, float m33,
|
||||
float m41, float m42, float m43)
|
||||
{
|
||||
M11 = m11; M12 = m12; M13 = m13;
|
||||
M21 = m21; M22 = m22; M23 = m23;
|
||||
M31 = m31; M32 = m32; M33 = m33;
|
||||
M41 = m41; M42 = m42; M43 = m43;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Compares two <see cref="Matrix4x3"/> objects for equality.
|
||||
/// </summary>
|
||||
/// <param name="left">The <see cref="Matrix4x3"/> on the left hand of the operand.</param>
|
||||
/// <param name="right">The <see cref="Matrix4x3"/> on the right hand of the operand.</param>
|
||||
/// <returns>
|
||||
/// True if the current left is equal to the <paramref name="right"/> parameter; otherwise, false.
|
||||
/// </returns>
|
||||
public static bool operator ==(Matrix4x3 left, Matrix4x3 right)
|
||||
{
|
||||
return (left.M11 == right.M11) && (left.M12 == right.M12) && (left.M13 == right.M13)
|
||||
&& (left.M21 == right.M21) && (left.M22 == right.M22) && (left.M23 == right.M23)
|
||||
&& (left.M31 == right.M31) && (left.M32 == right.M32) && (left.M33 == right.M33)
|
||||
&& (left.M41 == right.M41) && (left.M42 == right.M42) && (left.M43 == right.M43);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Compares two <see cref="Matrix4x3"/> objects for inequality.
|
||||
/// </summary>
|
||||
/// <param name="left">The <see cref="Matrix4x3"/> on the left hand of the operand.</param>
|
||||
/// <param name="right">The <see cref="Matrix4x3"/> on the right hand of the operand.</param>
|
||||
/// <returns>
|
||||
/// True if the current left is unequal to the <paramref name="right"/> parameter; otherwise, false.
|
||||
/// </returns>
|
||||
public static bool operator !=(Matrix4x3 left, Matrix4x3 right)
|
||||
{
|
||||
return (left.M11 != right.M11) || (left.M12 != right.M12) || (left.M13 != right.M13)
|
||||
|| (left.M21 != right.M21) || (left.M22 != right.M22) || (left.M23 != right.M23)
|
||||
|| (left.M31 != right.M31) || (left.M32 != right.M32) || (left.M33 != right.M33)
|
||||
|| (left.M41 != right.M41) || (left.M42 != right.M42) || (left.M43 != right.M43);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(object? obj) => (obj is Matrix4x3 other) && Equals(other);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public bool Equals(Matrix4x3 other) => this == other;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
var hashCode = new HashCode();
|
||||
{
|
||||
hashCode.Add(M11);
|
||||
hashCode.Add(M12);
|
||||
hashCode.Add(M13);
|
||||
hashCode.Add(M21);
|
||||
hashCode.Add(M22);
|
||||
hashCode.Add(M23);
|
||||
hashCode.Add(M31);
|
||||
hashCode.Add(M32);
|
||||
hashCode.Add(M33);
|
||||
hashCode.Add(M41);
|
||||
hashCode.Add(M42);
|
||||
hashCode.Add(M43);
|
||||
}
|
||||
return hashCode.ToHashCode();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override string ToString() => ToString(format: null, formatProvider: null);
|
||||
|
||||
/// <inheritdoc />
|
||||
public string ToString(string? format, IFormatProvider? formatProvider)
|
||||
{
|
||||
var separator = NumberFormatInfo.GetInstance(formatProvider).NumberGroupSeparator;
|
||||
|
||||
return new StringBuilder()
|
||||
.Append('<')
|
||||
.Append(M11.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M12.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M13.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M21.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M22.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M23.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M31.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M32.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M33.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M41.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M42.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M43.ToString(format, formatProvider))
|
||||
.Append('>')
|
||||
.ToString();
|
||||
}
|
||||
}
|
||||
217
src/Vortice.Win32/Graphics/Direct2D/Matrix5x4.cs
Normal file
217
src/Vortice.Win32/Graphics/Direct2D/Matrix5x4.cs
Normal file
@@ -0,0 +1,217 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Win32.Graphics.Direct2D.Common;
|
||||
|
||||
/// <summary>
|
||||
/// Describes a 5-by-4 floating point matrix.
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4)]
|
||||
public readonly struct Matrix5x4 : IEquatable<Matrix5x4>, IFormattable
|
||||
{
|
||||
/// <summary>
|
||||
/// Value at row 1 column 1.
|
||||
/// </summary>
|
||||
public readonly float M11;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 1 column 2.
|
||||
/// </summary>
|
||||
public readonly float M12;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 1 column 3.
|
||||
/// </summary>
|
||||
public readonly float M13;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 1 column 4.
|
||||
/// </summary>
|
||||
public readonly float M14;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 1.
|
||||
/// </summary>
|
||||
public readonly float M21;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 2.
|
||||
/// </summary>
|
||||
public readonly float M22;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 3.
|
||||
/// </summary>
|
||||
public readonly float M23;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 2 column 4.
|
||||
/// </summary>
|
||||
public readonly float M24;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 1.
|
||||
/// </summary>
|
||||
public readonly float M31;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 2.
|
||||
/// </summary>
|
||||
public readonly float M32;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 3.
|
||||
/// </summary>
|
||||
public readonly float M33;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 3 column 4.
|
||||
/// </summary>
|
||||
public readonly float M34;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 1.
|
||||
/// </summary>
|
||||
public readonly float M41;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 2.
|
||||
/// </summary>
|
||||
public readonly float M42;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 3.
|
||||
/// </summary>
|
||||
public readonly float M43;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 4 column 4.
|
||||
/// </summary>
|
||||
public readonly float M44;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 5 column 1.
|
||||
/// </summary>
|
||||
public readonly float M51;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 5 column 2.
|
||||
/// </summary>
|
||||
public readonly float M52;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 5 column 3.
|
||||
/// </summary>
|
||||
public readonly float M53;
|
||||
|
||||
/// <summary>
|
||||
/// Value at row 5 column 4.
|
||||
/// </summary>
|
||||
public readonly float M54;
|
||||
|
||||
/// <summary>
|
||||
/// Compares two <see cref="Matrix5x4"/> objects for equality.
|
||||
/// </summary>
|
||||
/// <param name="left">The <see cref="Matrix5x4"/> on the left hand of the operand.</param>
|
||||
/// <param name="right">The <see cref="Matrix5x4"/> on the right hand of the operand.</param>
|
||||
/// <returns>
|
||||
/// True if the current left is equal to the <paramref name="right"/> parameter; otherwise, false.
|
||||
/// </returns>
|
||||
public static bool operator ==(Matrix5x4 left, Matrix5x4 right)
|
||||
{
|
||||
return (left.M11 == right.M11) && (left.M12 == right.M12) && (left.M13 == right.M13) && (left.M14 == right.M14)
|
||||
&& (left.M21 == right.M21) && (left.M22 == right.M22) && (left.M23 == right.M23) && (left.M24 == right.M24)
|
||||
&& (left.M31 == right.M31) && (left.M32 == right.M32) && (left.M33 == right.M33) && (left.M34 == right.M34)
|
||||
&& (left.M41 == right.M41) && (left.M42 == right.M42) && (left.M43 == right.M43) && (left.M44 == right.M44)
|
||||
&& (left.M51 == right.M51) && (left.M52 == right.M52) && (left.M53 == right.M53) && (left.M54 == right.M54);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Compares two <see cref="Matrix5x4"/> objects for inequality.
|
||||
/// </summary>
|
||||
/// <param name="left">The <see cref="Matrix5x4"/> on the left hand of the operand.</param>
|
||||
/// <param name="right">The <see cref="Matrix5x4"/> on the right hand of the operand.</param>
|
||||
/// <returns>
|
||||
/// True if the current left is unequal to the <paramref name="right"/> parameter; otherwise, false.
|
||||
/// </returns>
|
||||
public static bool operator !=(Matrix5x4 left, Matrix5x4 right)
|
||||
{
|
||||
return (left.M11 != right.M11) || (left.M12 != right.M12) || (left.M13 != right.M13) || (left.M14 != right.M14)
|
||||
|| (left.M21 != right.M21) || (left.M22 != right.M22) || (left.M23 != right.M23) || (left.M24 != right.M24)
|
||||
|| (left.M31 != right.M31) || (left.M32 != right.M32) || (left.M33 != right.M33) || (left.M34 != right.M34)
|
||||
|| (left.M41 != right.M41) || (left.M42 != right.M42) || (left.M43 != right.M43) || (left.M44 != right.M44)
|
||||
|| (left.M51 != right.M51) || (left.M52 != right.M52) || (left.M53 != right.M53) || (left.M54 != right.M54);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(object? obj) => (obj is Matrix5x4 other) && Equals(other);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public bool Equals(Matrix5x4 other) => this == other;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
var hashCode = new HashCode();
|
||||
{
|
||||
hashCode.Add(M11);
|
||||
hashCode.Add(M12);
|
||||
hashCode.Add(M13);
|
||||
hashCode.Add(M14);
|
||||
hashCode.Add(M21);
|
||||
hashCode.Add(M22);
|
||||
hashCode.Add(M23);
|
||||
hashCode.Add(M24);
|
||||
hashCode.Add(M31);
|
||||
hashCode.Add(M32);
|
||||
hashCode.Add(M33);
|
||||
hashCode.Add(M34);
|
||||
hashCode.Add(M41);
|
||||
hashCode.Add(M42);
|
||||
hashCode.Add(M43);
|
||||
hashCode.Add(M44);
|
||||
hashCode.Add(M51);
|
||||
hashCode.Add(M52);
|
||||
hashCode.Add(M53);
|
||||
hashCode.Add(M54);
|
||||
}
|
||||
return hashCode.ToHashCode();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override string ToString() => ToString(format: null, formatProvider: null);
|
||||
|
||||
/// <inheritdoc />
|
||||
public string ToString(string? format, IFormatProvider? formatProvider)
|
||||
{
|
||||
var separator = NumberFormatInfo.GetInstance(formatProvider).NumberGroupSeparator;
|
||||
|
||||
return new StringBuilder()
|
||||
.Append('<')
|
||||
.Append(M11.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M12.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M13.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M14.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M21.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M22.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M23.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M24.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M31.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M32.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M33.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M34.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M41.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M42.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M43.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M44.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M51.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M52.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M53.ToString(format, formatProvider)).Append(separator).Append(' ')
|
||||
.Append(M54.ToString(format, formatProvider))
|
||||
.Append('>')
|
||||
.ToString();
|
||||
}
|
||||
}
|
||||
30
src/Vortice.Win32/Graphics/Direct2D/PixelFormat.cs
Normal file
30
src/Vortice.Win32/Graphics/Direct2D/PixelFormat.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
using Win32.Graphics.Dxgi.Common;
|
||||
|
||||
namespace Win32.Graphics.Direct2D.Common;
|
||||
|
||||
public partial struct PixelFormat
|
||||
{
|
||||
/// <summary>
|
||||
/// An unkown <see cref="PixelFormat"/> with <see cref="Format"/> to <see cref="Format.Unknown"/> and <see cref="DCommon.AlphaMode"/> to <see cref="AlphaMode.Unknown"/>.
|
||||
/// </summary>
|
||||
public static readonly PixelFormat Unknown = new(Format.Unknown, AlphaMode.Unknown);
|
||||
|
||||
/// <summary>
|
||||
/// A Premultiplied <see cref="PixelFormat"/> with <see cref="Format"/> to <see cref="Format.Unknown"/> and <see cref="DCommon.AlphaMode"/> to <see cref="AlphaMode.Premultiplied"/>.
|
||||
/// </summary>
|
||||
public static readonly PixelFormat Premultiplied = new(Format.Unknown, AlphaMode.Premultiplied);
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="PixelFormat"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="format">The <see cref="Format"/> to use.</param>
|
||||
/// <param name="alphaMode">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 unknown.</param>
|
||||
public PixelFormat(Format format, AlphaMode alphaMode)
|
||||
{
|
||||
this.format = format;
|
||||
this.alphaMode = alphaMode;
|
||||
}
|
||||
}
|
||||
31
src/Vortice.Win32/Graphics/Direct3D11/BufferDescription.cs
Normal file
31
src/Vortice.Win32/Graphics/Direct3D11/BufferDescription.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
namespace Win32.Graphics.Direct3D11;
|
||||
|
||||
public unsafe partial struct BufferDescription
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BufferDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="byteWidth">The size in bytes.</param>
|
||||
/// <param name="bindFlags">The bind flags.</param>
|
||||
/// <param name="usage">The usage.</param>
|
||||
/// <param name="cpuAccessFlags">The CPU access flags.</param>
|
||||
/// <param name="miscFlags">The option flags.</param>
|
||||
/// <param name="structureByteStride">The structure byte stride.</param>
|
||||
public BufferDescription(uint byteWidth,
|
||||
BindFlags bindFlags,
|
||||
Usage usage = Usage.Default,
|
||||
CpuAccessFlags cpuAccessFlags = CpuAccessFlags.None,
|
||||
ResourceMiscFlags miscFlags = ResourceMiscFlags.None,
|
||||
uint structureByteStride = 0)
|
||||
{
|
||||
ByteWidth = byteWidth;
|
||||
BindFlags = bindFlags;
|
||||
Usage = usage;
|
||||
CPUAccessFlags = cpuAccessFlags;
|
||||
MiscFlags = miscFlags;
|
||||
StructureByteStride = structureByteStride;
|
||||
}
|
||||
}
|
||||
101
src/Vortice.Win32/Graphics/Direct3D11/DepthStencilDescription.cs
Normal file
101
src/Vortice.Win32/Graphics/Direct3D11/DepthStencilDescription.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
using static Win32.Graphics.Direct3D11.Apis;
|
||||
|
||||
namespace Win32.Graphics.Direct3D11;
|
||||
|
||||
public unsafe partial struct DepthStencilDescription
|
||||
{
|
||||
/// <summary>
|
||||
/// A built-in description with settings for not using a depth stencil buffer.
|
||||
/// </summary>
|
||||
public static readonly DepthStencilDescription None = new(false, DepthWriteMask.Zero);
|
||||
|
||||
/// <summary>
|
||||
/// A built-in description with default settings for using a depth stencil buffer.
|
||||
/// </summary>
|
||||
public static readonly DepthStencilDescription Default = new(true, DepthWriteMask.All);
|
||||
|
||||
/// <summary>
|
||||
/// A built-in description with settings for enabling a read-only depth stencil buffer.
|
||||
/// </summary>
|
||||
public static readonly DepthStencilDescription DepthRead = new(true, DepthWriteMask.Zero);
|
||||
|
||||
/// <summary>
|
||||
/// A built-in description with settings for using a reverse depth stencil buffer.
|
||||
/// </summary>
|
||||
public static readonly DepthStencilDescription DepthReverseZ = new(true, DepthWriteMask.All, ComparisonFunc.GreaterEqual);
|
||||
|
||||
/// <summary>
|
||||
/// A built-in description with settings for enabling a read-only reverse depth stencil buffer.
|
||||
/// </summary>
|
||||
public static readonly DepthStencilDescription DepthReadReverseZ = new(true, DepthWriteMask.Zero, ComparisonFunc.GreaterEqual);
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepthStencilDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="depthEnable">Enable depth testing.</param>
|
||||
/// <param name="depthWriteMask">Identify a portion of the depth-stencil buffer that can be modified by depth data.</param>
|
||||
/// <param name="depthFunc">A function that compares depth data against existing depth data. </param>
|
||||
public DepthStencilDescription(bool depthEnable, DepthWriteMask depthWriteMask, ComparisonFunc depthFunc = ComparisonFunc.LessEqual)
|
||||
{
|
||||
DepthEnable = depthEnable;
|
||||
DepthWriteMask = depthWriteMask;
|
||||
DepthFunc = depthFunc;
|
||||
StencilEnable = false;
|
||||
StencilReadMask = (byte)D3D11_DEFAULT_STENCIL_READ_MASK;
|
||||
StencilWriteMask = (byte)D3D11_DEFAULT_STENCIL_WRITE_MASK;
|
||||
FrontFace = DepthStencilOpDescription.Default;
|
||||
BackFace = DepthStencilOpDescription.Default;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepthStencilDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="depthEnable">Specifies whether to enable depth testing. Set this member to <b>true</b> to enable depth testing.</param>
|
||||
/// <param name="depthWriteEnable">Specifies a value that identifies a portion of the depth-stencil buffer that can be modified by depth data.</param>
|
||||
/// <param name="depthFunc">A <see cref="ComparisonFunc"/> value that identifies a function that compares depth data against existing depth data.</param>
|
||||
/// <param name="stencilEnable">Specifies whether to enable stencil testing. Set this member to <b>true</b> to enable stencil testing.</param>
|
||||
/// <param name="stencilReadMask">Identify a portion of the depth-stencil buffer for reading stencil data.</param>
|
||||
/// <param name="stencilWriteMask">Identify a portion of the depth-stencil buffer for writing stencil data.</param>
|
||||
/// <param name="frontStencilFailOp"></param>
|
||||
/// <param name="frontStencilDepthFailOp"></param>
|
||||
/// <param name="frontStencilPassOp"></param>
|
||||
/// <param name="frontStencilFunc"></param>
|
||||
/// <param name="backStencilFailOp"></param>
|
||||
/// <param name="backStencilDepthFailOp"></param>
|
||||
/// <param name="backStencilPassOp"></param>
|
||||
/// <param name="backStencilFunc"></param>
|
||||
public DepthStencilDescription(
|
||||
bool depthEnable,
|
||||
bool depthWriteEnable,
|
||||
ComparisonFunc depthFunc,
|
||||
bool stencilEnable,
|
||||
byte stencilReadMask,
|
||||
byte stencilWriteMask,
|
||||
StencilOp frontStencilFailOp,
|
||||
StencilOp frontStencilDepthFailOp,
|
||||
StencilOp frontStencilPassOp,
|
||||
ComparisonFunc frontStencilFunc,
|
||||
StencilOp backStencilFailOp,
|
||||
StencilOp backStencilDepthFailOp,
|
||||
StencilOp backStencilPassOp,
|
||||
ComparisonFunc backStencilFunc)
|
||||
{
|
||||
DepthEnable = depthEnable;
|
||||
DepthWriteMask = depthWriteEnable ? DepthWriteMask.All : DepthWriteMask.Zero;
|
||||
DepthFunc = depthFunc;
|
||||
StencilEnable = stencilEnable;
|
||||
StencilReadMask = stencilReadMask;
|
||||
StencilWriteMask = stencilWriteMask;
|
||||
FrontFace.StencilFailOp = frontStencilFailOp;
|
||||
FrontFace.StencilDepthFailOp = frontStencilDepthFailOp;
|
||||
FrontFace.StencilPassOp = frontStencilPassOp;
|
||||
FrontFace.StencilFunc = frontStencilFunc;
|
||||
BackFace.StencilFailOp = backStencilFailOp;
|
||||
BackFace.StencilDepthFailOp = backStencilDepthFailOp;
|
||||
BackFace.StencilPassOp = backStencilPassOp;
|
||||
BackFace.StencilFunc = backStencilFunc;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
namespace Win32.Graphics.Direct3D11;
|
||||
|
||||
public unsafe partial struct DepthStencilOpDescription
|
||||
{
|
||||
/// <summary>
|
||||
/// A built-in description with default values.
|
||||
/// </summary>
|
||||
public static readonly DepthStencilOpDescription Default = new(StencilOp.Keep, StencilOp.Keep, StencilOp.Keep, ComparisonFunc.Always);
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepthStencilOpDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="stencilFailOp">A <see cref="StencilOp"/> value that identifies the stencil operation to perform when stencil testing fails.</param>
|
||||
/// <param name="stencilDepthFailOp">A <see cref="StencilOp"/> value that identifies the stencil operation to perform when stencil testing passes and depth testing fails.</param>
|
||||
/// <param name="stencilPassOp">A <see cref="StencilOp"/> value that identifies the stencil operation to perform when stencil testing and depth testing both pass.</param>
|
||||
/// <param name="stencilFunc">A <see cref="ComparisonFunc"/> value that identifies the function that compares stencil data against existing stencil data.</param>
|
||||
public DepthStencilOpDescription(StencilOp stencilFailOp, StencilOp stencilDepthFailOp, StencilOp stencilPassOp, ComparisonFunc stencilFunc)
|
||||
{
|
||||
StencilFailOp = stencilFailOp;
|
||||
StencilDepthFailOp = stencilDepthFailOp;
|
||||
StencilPassOp = stencilPassOp;
|
||||
StencilFunc = stencilFunc;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
using System.Xml.Serialization;
|
||||
using Win32.Graphics.Direct3D;
|
||||
using Win32.Graphics.Dxgi.Common;
|
||||
|
||||
namespace Win32.Graphics.Direct3D11;
|
||||
|
||||
public unsafe partial struct ShaderResourceViewDescription
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ShaderResourceViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="viewDimension">The <see cref="SrvDimension"/></param>
|
||||
/// <param name="format">The <see cref="Format"/> to use or <see cref="Format.Unknown"/>.</param>
|
||||
/// <param name="mostDetailedMip">Index of the most detailed mipmap level to use or first element for <see cref="SrvDimension.Buffer"/> or <see cref="SrvDimension.BufferExtended"/>.</param>
|
||||
/// <param name="mipLevels">The maximum number of mipmap levels for the view of the texture or num elements for <see cref="SrvDimension.Buffer"/> or <see cref="SrvDimension.BufferExtended"/>.</param>
|
||||
/// <param name="firstArraySlice">The index of the first texture to use in an array of textures or First2DArrayFace for <see cref="SrvDimension.TextureCubeArray"/>. </param>
|
||||
/// <param name="arraySize">Number of textures in the array or num cubes for <see cref="SrvDimension.TextureCubeArray"/>. </param>
|
||||
/// <param name="flags"><see cref="BufferExtendedSrvFlags"/> for <see cref="SrvDimension.BufferExtended"/>.</param>
|
||||
public ShaderResourceViewDescription(
|
||||
SrvDimension viewDimension,
|
||||
Format format = Format.Unknown,
|
||||
uint mostDetailedMip = 0,
|
||||
uint mipLevels = unchecked((uint)-1),
|
||||
uint firstArraySlice = 0,
|
||||
uint arraySize = unchecked((uint)-1),
|
||||
BufferExtendedSrvFlags flags = BufferExtendedSrvFlags.None)
|
||||
{
|
||||
Format = format;
|
||||
ViewDimension = viewDimension;
|
||||
Anonymous = default;
|
||||
|
||||
switch (viewDimension)
|
||||
{
|
||||
case SrvDimension.Buffer:
|
||||
Anonymous.Buffer.FirstElement = mostDetailedMip;
|
||||
Anonymous.Buffer.NumElements = mipLevels;
|
||||
break;
|
||||
case SrvDimension.Texture1D:
|
||||
Anonymous.Texture1D.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture1D.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.Texture1DArray:
|
||||
Anonymous.Texture1DArray.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture1DArray.MipLevels = mipLevels;
|
||||
Anonymous.Texture1DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture1DArray.ArraySize = arraySize;
|
||||
break;
|
||||
case SrvDimension.Texture2D:
|
||||
Anonymous.Texture2D.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture2D.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.Texture2DArray:
|
||||
Anonymous.Texture2DArray.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture2DArray.MipLevels = mipLevels;
|
||||
Anonymous.Texture2DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture2DArray.ArraySize = arraySize;
|
||||
break;
|
||||
case SrvDimension.Texture2DMs:
|
||||
break;
|
||||
case SrvDimension.Texture2DMsArray:
|
||||
Anonymous.Texture2DMSArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture2DMSArray.ArraySize = arraySize;
|
||||
break;
|
||||
case SrvDimension.Texture3D:
|
||||
Anonymous.Texture3D.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture3D.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.TextureCube:
|
||||
Anonymous.TextureCube.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.TextureCube.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.TextureCubeArray:
|
||||
Anonymous.TextureCubeArray.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.TextureCubeArray.MipLevels = mipLevels;
|
||||
Anonymous.TextureCubeArray.First2DArrayFace = firstArraySlice;
|
||||
Anonymous.TextureCubeArray.NumCubes = arraySize;
|
||||
break;
|
||||
case SrvDimension.BufferExtended:
|
||||
Anonymous.BufferEx.FirstElement = mostDetailedMip;
|
||||
Anonymous.BufferEx.NumElements = mipLevels;
|
||||
BufferEx.Flags = flags;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ShaderResourceViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="buffer">Unused <see cref="ID3D11Buffer"/> </param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="firstElement"></param>
|
||||
/// <param name="numElements"></param>
|
||||
/// <param name="flags"></param>
|
||||
public ShaderResourceViewDescription(
|
||||
ID3D11Buffer* buffer,
|
||||
Format format,
|
||||
uint firstElement,
|
||||
uint numElements,
|
||||
BufferExtendedSrvFlags flags = BufferExtendedSrvFlags.None)
|
||||
{
|
||||
Format = format;
|
||||
ViewDimension = SrvDimension.BufferExtended;
|
||||
|
||||
Anonymous = default;
|
||||
Anonymous.BufferEx.FirstElement = firstElement;
|
||||
Anonymous.BufferEx.NumElements = numElements;
|
||||
Anonymous.BufferEx.Flags = flags;
|
||||
}
|
||||
|
||||
public ShaderResourceViewDescription(
|
||||
ID3D11Texture1D* texture,
|
||||
bool isArray,
|
||||
Format format = Format.Unknown,
|
||||
uint mostDetailedMip = 0,
|
||||
uint mipLevels = unchecked((uint)-1),
|
||||
uint firstArraySlice = 0,
|
||||
uint arraySize = unchecked((uint)-1))
|
||||
{
|
||||
ViewDimension = isArray ? SrvDimension.Texture1DArray : SrvDimension.Texture1D;
|
||||
if (format == Format.Unknown
|
||||
|| mipLevels == unchecked((uint)-1)
|
||||
|| (arraySize == unchecked((uint)-1) && SrvDimension.Texture1DArray == ViewDimension))
|
||||
{
|
||||
Texture1DDescription textureDesc;
|
||||
texture->GetDesc(&textureDesc);
|
||||
|
||||
if (format == Format.Unknown)
|
||||
format = textureDesc.Format;
|
||||
if (mipLevels == unchecked((uint)-1))
|
||||
mipLevels = textureDesc.MipLevels - mostDetailedMip;
|
||||
if (arraySize == unchecked((uint)-1))
|
||||
arraySize = textureDesc.ArraySize - firstArraySlice;
|
||||
}
|
||||
|
||||
Format = format;
|
||||
Anonymous = default;
|
||||
|
||||
switch (ViewDimension)
|
||||
{
|
||||
case SrvDimension.Texture1D:
|
||||
Anonymous.Texture1D.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture1D.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.Texture1DArray:
|
||||
Anonymous.Texture1DArray.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture1DArray.MipLevels = mipLevels;
|
||||
Anonymous.Texture1DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture1DArray.ArraySize = arraySize;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ShaderResourceViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="texture"></param>
|
||||
/// <param name="viewDimension"></param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="mostDetailedMip"></param>
|
||||
/// <param name="mipLevels"></param>
|
||||
/// <param name="firstArraySlice"></param>
|
||||
/// <param name="arraySize"></param>
|
||||
public ShaderResourceViewDescription(
|
||||
ID3D11Texture2D* texture,
|
||||
SrvDimension viewDimension,
|
||||
Format format = Format.Unknown,
|
||||
uint mostDetailedMip = 0,
|
||||
uint mipLevels = unchecked((uint)-1),
|
||||
uint firstArraySlice = 0,
|
||||
uint arraySize = unchecked((uint)-1))
|
||||
{
|
||||
ViewDimension = viewDimension;
|
||||
if (format == Format.Unknown
|
||||
|| (mipLevels == unchecked((uint)-1) && viewDimension != SrvDimension.Texture2DMs && viewDimension != SrvDimension.Texture2DMsArray)
|
||||
|| (arraySize == unchecked((uint)-1) && (SrvDimension.Texture2DArray == viewDimension || SrvDimension.Texture2DMsArray == viewDimension || SrvDimension.TextureCubeArray == viewDimension)))
|
||||
{
|
||||
Texture2DDescription textureDesc;
|
||||
texture->GetDesc(&textureDesc);
|
||||
|
||||
if (format == Format.Unknown)
|
||||
format = textureDesc.Format;
|
||||
if (unchecked((uint)-1) == mipLevels)
|
||||
mipLevels = textureDesc.MipLevels - mostDetailedMip;
|
||||
if (unchecked((uint)-1) == arraySize)
|
||||
{
|
||||
arraySize = textureDesc.ArraySize - firstArraySlice;
|
||||
if (viewDimension == SrvDimension.TextureCubeArray)
|
||||
arraySize /= 6;
|
||||
}
|
||||
}
|
||||
|
||||
Format = format;
|
||||
Anonymous = default;
|
||||
|
||||
switch (viewDimension)
|
||||
{
|
||||
case SrvDimension.Texture2D:
|
||||
Anonymous.Texture2D.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture2D.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.Texture2DArray:
|
||||
Anonymous.Texture2DArray.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture2DArray.MipLevels = mipLevels;
|
||||
Anonymous.Texture2DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture2DArray.ArraySize = arraySize;
|
||||
break;
|
||||
case SrvDimension.Texture2DMs:
|
||||
break;
|
||||
case SrvDimension.Texture2DMsArray:
|
||||
Anonymous.Texture2DMSArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture2DMSArray.ArraySize = arraySize;
|
||||
break;
|
||||
case SrvDimension.TextureCube:
|
||||
Anonymous.TextureCube.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.TextureCube.MipLevels = mipLevels;
|
||||
break;
|
||||
case SrvDimension.TextureCubeArray:
|
||||
Anonymous.TextureCubeArray.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.TextureCubeArray.MipLevels = mipLevels;
|
||||
Anonymous.TextureCubeArray.First2DArrayFace = firstArraySlice;
|
||||
Anonymous.TextureCubeArray.NumCubes = arraySize;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ShaderResourceViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="texture"></param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="mostDetailedMip"></param>
|
||||
/// <param name="mipLevels"></param>
|
||||
public ShaderResourceViewDescription(
|
||||
ID3D11Texture3D* texture,
|
||||
Format format = Format.Unknown,
|
||||
uint mostDetailedMip = 0,
|
||||
uint mipLevels = unchecked((uint)-1))
|
||||
{
|
||||
ViewDimension = SrvDimension.Texture3D;
|
||||
if (format == Format.Unknown || mipLevels == unchecked((uint)-1))
|
||||
{
|
||||
Texture3DDescription textureDesc;
|
||||
texture->GetDesc(&textureDesc);
|
||||
|
||||
if (format == Format.Unknown)
|
||||
format = textureDesc.Format;
|
||||
if (mipLevels == unchecked((uint)-1))
|
||||
mipLevels = textureDesc.MipLevels - mostDetailedMip;
|
||||
}
|
||||
|
||||
Format = format;
|
||||
Anonymous = default;
|
||||
|
||||
Anonymous.Texture3D.MostDetailedMip = mostDetailedMip;
|
||||
Anonymous.Texture3D.MipLevels = mipLevels;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
// Copyright © Amer Koleci and Contributors.
|
||||
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||
|
||||
using System.Xml.Serialization;
|
||||
using Win32.Graphics.Dxgi.Common;
|
||||
|
||||
namespace Win32.Graphics.Direct3D11;
|
||||
|
||||
public unsafe partial struct UnorderedAccessViewDescription
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UnorderedAccessViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="viewDimension">The <see cref="UavDimension"/></param>
|
||||
/// <param name="format">The <see cref="Format"/> to use or <see cref="Format.Unknown"/>.</param>
|
||||
/// <param name="mipSlice">The index of the mipmap level to use mip slice or FirstElement for BUFFER.</param>
|
||||
/// <param name="firstArraySlice">The index of the first texture to use in an array of textures or NumElements for BUFFER or FirstWSlice for TEXTURE3D.</param>
|
||||
/// <param name="arraySize">Number of textures in the array or WSize for TEXTURE3D.</param>
|
||||
/// <param name="flags"><see cref="BufferUnorderedAccessViewFlags"/> options flags for the resource.</param>
|
||||
public UnorderedAccessViewDescription(
|
||||
UavDimension viewDimension,
|
||||
Format format = Format.Unknown,
|
||||
uint mipSlice = 0,
|
||||
uint firstArraySlice = 0,
|
||||
uint arraySize = unchecked((uint)-1),
|
||||
BufferUavFlags flags = BufferUavFlags.None)
|
||||
{
|
||||
Format = format;
|
||||
ViewDimension = viewDimension;
|
||||
Anonymous = default;
|
||||
|
||||
switch (viewDimension)
|
||||
{
|
||||
case UavDimension.Buffer:
|
||||
Anonymous.Buffer.FirstElement = mipSlice;
|
||||
Anonymous.Buffer.NumElements = firstArraySlice;
|
||||
Anonymous.Buffer.Flags = flags;
|
||||
break;
|
||||
case UavDimension.Texture1D:
|
||||
Anonymous.Texture1D.MipSlice = mipSlice;
|
||||
break;
|
||||
case UavDimension.Texture1DArray:
|
||||
Anonymous.Texture1DArray.MipSlice = mipSlice;
|
||||
Anonymous.Texture1DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture1DArray.ArraySize = arraySize;
|
||||
break;
|
||||
case UavDimension.Texture2D:
|
||||
Anonymous.Texture2D.MipSlice = mipSlice;
|
||||
break;
|
||||
case UavDimension.Texture2DArray:
|
||||
Anonymous.Texture2DArray.MipSlice = mipSlice;
|
||||
Anonymous.Texture2DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture2DArray.ArraySize = arraySize;
|
||||
break;
|
||||
case UavDimension.Texture3D:
|
||||
Anonymous.Texture3D.MipSlice = mipSlice;
|
||||
Anonymous.Texture3D.FirstWSlice = firstArraySlice;
|
||||
Anonymous.Texture3D.WSize = arraySize;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UnorderedAccessViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="buffer"></param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="firstElement"></param>
|
||||
/// <param name="numElements"></param>
|
||||
/// <param name="flags"><see cref="BufferUnorderedAccessViewFlags"/> options flags for the resource.</param>
|
||||
public UnorderedAccessViewDescription(
|
||||
ID3D11Buffer* buffer,
|
||||
Format format,
|
||||
uint firstElement = 0,
|
||||
uint numElements = 0,
|
||||
BufferUavFlags flags = BufferUavFlags.None)
|
||||
{
|
||||
Format = format;
|
||||
ViewDimension = UavDimension.Buffer;
|
||||
Anonymous = default;
|
||||
Anonymous.Buffer.FirstElement = firstElement;
|
||||
Anonymous.Buffer.NumElements = numElements;
|
||||
Anonymous.Buffer.Flags = flags;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UnorderedAccessViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="texture"></param>
|
||||
/// <param name="isArray"></param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="mipSlice"></param>
|
||||
/// <param name="firstArraySlice"></param>
|
||||
/// <param name="arraySize"></param>
|
||||
public UnorderedAccessViewDescription(
|
||||
ID3D11Texture1D* texture,
|
||||
bool isArray,
|
||||
Format format = Format.Unknown,
|
||||
uint mipSlice = 0,
|
||||
uint firstArraySlice = 0,
|
||||
uint arraySize = unchecked((uint)-1))
|
||||
{
|
||||
ViewDimension = isArray ? UavDimension.Texture1DArray : UavDimension.Texture1D;
|
||||
|
||||
if (format == Format.Unknown
|
||||
|| (arraySize == unchecked((uint)-1) && (UavDimension.Texture1DArray == ViewDimension)))
|
||||
{
|
||||
Texture1DDescription textureDesc;
|
||||
texture->GetDesc(&textureDesc);
|
||||
|
||||
if (format == Format.Unknown)
|
||||
format = textureDesc.Format;
|
||||
if (arraySize == unchecked((uint)-1))
|
||||
arraySize = textureDesc.ArraySize - firstArraySlice;
|
||||
}
|
||||
|
||||
Format = format;
|
||||
Anonymous = default;
|
||||
|
||||
switch (ViewDimension)
|
||||
{
|
||||
case UavDimension.Texture1D:
|
||||
Anonymous.Texture1D.MipSlice = mipSlice;
|
||||
break;
|
||||
case UavDimension.Texture1DArray:
|
||||
Anonymous.Texture1DArray.MipSlice = mipSlice;
|
||||
Anonymous.Texture1DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture1DArray.ArraySize = arraySize;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UnorderedAccessViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="texture"></param>
|
||||
/// <param name="viewDimension"></param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="mipSlice"></param>
|
||||
/// <param name="firstArraySlice"></param>
|
||||
/// <param name="arraySize"></param>
|
||||
public UnorderedAccessViewDescription(
|
||||
ID3D11Texture2D* texture,
|
||||
UavDimension viewDimension,
|
||||
Format format = Format.Unknown,
|
||||
uint mipSlice = 0,
|
||||
uint firstArraySlice = 0,
|
||||
uint arraySize = unchecked((uint)-1))
|
||||
{
|
||||
ViewDimension = viewDimension;
|
||||
|
||||
if (format == Format.Unknown
|
||||
|| (arraySize == unchecked((uint)-1) && (viewDimension == UavDimension.Texture2DArray)))
|
||||
{
|
||||
Texture2DDescription textureDesc;
|
||||
texture->GetDesc(&textureDesc);
|
||||
|
||||
if (format == Format.Unknown)
|
||||
format = textureDesc.Format;
|
||||
if (arraySize == unchecked((uint)-1))
|
||||
arraySize = textureDesc.ArraySize - firstArraySlice;
|
||||
}
|
||||
|
||||
Format = format;
|
||||
Anonymous = default;
|
||||
|
||||
switch (viewDimension)
|
||||
{
|
||||
case UavDimension.Texture2D:
|
||||
Anonymous.Texture2D.MipSlice = mipSlice;
|
||||
break;
|
||||
case UavDimension.Texture2DArray:
|
||||
Anonymous.Texture2DArray.MipSlice = mipSlice;
|
||||
Anonymous.Texture2DArray.FirstArraySlice = firstArraySlice;
|
||||
Anonymous.Texture2DArray.ArraySize = arraySize;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UnorderedAccessViewDescription"/> struct.
|
||||
/// </summary>
|
||||
/// <param name="texture"></param>
|
||||
/// <param name="viewDimension"></param>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="mipSlice"></param>
|
||||
/// <param name="firstWSlice"></param>
|
||||
/// <param name="wSize"></param>
|
||||
public UnorderedAccessViewDescription(
|
||||
ID3D11Texture3D* texture,
|
||||
UavDimension viewDimension,
|
||||
Format format = Format.Unknown,
|
||||
uint mipSlice = 0,
|
||||
uint firstWSlice = 0,
|
||||
uint wSize = unchecked((uint)-1))
|
||||
{
|
||||
ViewDimension = viewDimension;
|
||||
|
||||
if (format == Format.Unknown || wSize == unchecked((uint)-1))
|
||||
{
|
||||
Texture3DDescription textureDesc;
|
||||
texture->GetDesc(&textureDesc);
|
||||
|
||||
if (format == Format.Unknown)
|
||||
format = textureDesc.Format;
|
||||
if (wSize == unchecked((uint)-1))
|
||||
wSize = textureDesc.Depth - firstWSlice;
|
||||
}
|
||||
|
||||
Format = format;
|
||||
Anonymous = default;
|
||||
|
||||
Anonymous.Texture3D.MipSlice = mipSlice;
|
||||
Anonymous.Texture3D.FirstWSlice = firstWSlice;
|
||||
Anonymous.Texture3D.WSize = wSize;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user