From dde3ede8f0f4219b7aedb82311f6025505198edf Mon Sep 17 00:00:00 2001 From: Amer Koleci Date: Mon, 5 Sep 2022 14:03:56 +0200 Subject: [PATCH] Generator: Handle union generation and nested types as well + D3D11 magic. --- src/Generator/ApiData.cs | 1 + src/Generator/DocGenerator.cs | 2 - src/Generator/Program.cs | 234 ++- .../Generated/Graphics/Direct3D.cs | 3 + .../Generated/Graphics/Direct3D11.cs | 1483 +++++++++++++++-- .../Generated/Graphics/Dxgi.Common.cs | 3 + src/Vortice.Win32/Generated/Graphics/Dxgi.cs | 3 + .../Graphics/Direct3D11.Manual.cs | 57 + 8 files changed, 1602 insertions(+), 184 deletions(-) create mode 100644 src/Vortice.Win32/Graphics/Direct3D11.Manual.cs diff --git a/src/Generator/ApiData.cs b/src/Generator/ApiData.cs index a99444c..6a9d44a 100644 --- a/src/Generator/ApiData.cs +++ b/src/Generator/ApiData.cs @@ -129,4 +129,5 @@ public sealed class ApiData { public ApiDataConstant[] Constants { get; set; } public ApiType[] Types { get; set; } + public ApiFunction[] Functions { get; set; } } diff --git a/src/Generator/DocGenerator.cs b/src/Generator/DocGenerator.cs index 0d9fcc5..e26c323 100644 --- a/src/Generator/DocGenerator.cs +++ b/src/Generator/DocGenerator.cs @@ -1,12 +1,10 @@ // Copyright © Amer Koleci and Contributors. // Licensed under the MIT License (MIT). See LICENSE in the repository root for more information. -using System.Text; using System.Text.RegularExpressions; using System.Xml; using MessagePack; using Microsoft.Windows.SDK.Win32Docs; -using Newtonsoft.Json.Linq; namespace Generator; diff --git a/src/Generator/Program.cs b/src/Generator/Program.cs index 282bba0..8d70bb5 100644 --- a/src/Generator/Program.cs +++ b/src/Generator/Program.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License (MIT). See LICENSE in the repository root for more information. using System.Globalization; +using System.Linq; using System.Text; using Newtonsoft.Json; @@ -97,13 +98,7 @@ public static class Program { "D3D_SHADER_INPUT_TYPE", "D3D_SIT" }, { "D3D_SHADER_CBUFFER_FLAGS", "D3D_CBF" }, - // D3D11 - { "D3D11_INPUT_CLASSIFICATION", "D3D11_INPUT" }, - { "D3D11_FILL_MODE", "D3D11_FILL" }, - { "D3D11_CULL_MODE", "D3D11_CULL" }, - { "D3D11_BIND_FLAG", "D3D11_BIND" }, - { "D3D11_CPU_ACCESS_FLAG", "D3D11_CPU_ACCESS" }, - { "D3D11_RESOURCE_MISC_FLAG", "D3D11_RESOURCE_MISC" }, + // D3D11 -> handled in code }; private static readonly Dictionary s_partRenames = new() @@ -173,6 +168,16 @@ public static class Program { "DXGI_FORMAT_420_OPAQUE", "Opaque420" }, { "DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY", "CompositedUICaptureOnly" }, { "D3D_FEATURE_LEVEL_9_1", "Level_9_1" }, + + // D3D11 + { "D3D11_STANDARD_MULTISAMPLE_PATTERN", "Standard" }, + { "D3D11_CENTER_MULTISAMPLE_PATTERN", "Center" }, + { "D3D11_SHADER_MIN_PRECISION_10_BIT", "Bit10" }, + { "D3D11_SHADER_MIN_PRECISION_16_BIT", "Bit16" }, + { "D3D11_SHARED_RESOURCE_TIER_0", "Tier0" }, + { "D3D11_SHARED_RESOURCE_TIER_1", "Tier1" }, + { "D3D11_SHARED_RESOURCE_TIER_2", "Tier2" }, + { "D3D11_SHARED_RESOURCE_TIER_3", "Tier3" }, }; private static readonly Dictionary s_generatedEnums = new() @@ -185,12 +190,16 @@ public static class Program {"DXGI_ENUM_MODES", true }, }; - private static readonly HashSet s_ignoredParts = new(StringComparer.OrdinalIgnoreCase) + private static readonly HashSet s_ignoredStartParts = new(StringComparer.OrdinalIgnoreCase) { "DXGI", "D3D", "D3D10", "D3D11", + }; + + private static readonly HashSet s_ignoredParts = new(StringComparer.OrdinalIgnoreCase) + { "PF" // D3D_PF_ }; @@ -211,6 +220,14 @@ public static class Program { "DXGI_MAP", "MapFlags" }, { "DXGI_ENUM_MODES", "EnumModesFlags" }, { "DXGI_MWA", "WindowAssociationFlags" }, + + // D3D11 + { "D3D11_BIND_FLAG", "BindFlags" }, + { "D3D11_CPU_ACCESS_FLAG", "CpuAccessFlags" }, + { "D3D11_RESOURCE_MISC_FLAG", "ResourceMiscFlags" }, + { "D3D11_MAP_FLAG", "MapFlags" }, + { "D3D11_FORMAT_SUPPORT", "FormatSupport" }, + { "D3D11_FORMAT_SUPPORT2", "FormatSupport2" }, }; private static readonly Dictionary s_structFieldTypeRemap = new() @@ -221,6 +238,26 @@ public static class Program { "DXGI_SWAP_CHAIN_DESC::Flags", "DXGI_SWAP_CHAIN_FLAG" }, { "DXGI_SWAP_CHAIN_DESC1::BufferUsage", "Usage" }, { "DXGI_SWAP_CHAIN_DESC1::Flags", "DXGI_SWAP_CHAIN_FLAG" }, + + // D3D11 + { "D3D11_BUFFER_DESC::BindFlags", "D3D11_BIND_FLAG" }, + { "D3D11_BUFFER_DESC::CPUAccessFlags", "D3D11_CPU_ACCESS_FLAG" }, + { "D3D11_BUFFER_DESC::MiscFlags", "D3D11_RESOURCE_MISC_FLAG" }, + + { "D3D11_TEXTURE1D_DESC::BindFlags", "D3D11_BIND_FLAG" }, + { "D3D11_TEXTURE1D_DESC::CPUAccessFlags", "D3D11_CPU_ACCESS_FLAG" }, + { "D3D11_TEXTURE1D_DESC::MiscFlags", "D3D11_RESOURCE_MISC_FLAG" }, + + { "D3D11_TEXTURE2D_DESC::BindFlags", "D3D11_BIND_FLAG" }, + { "D3D11_TEXTURE2D_DESC::CPUAccessFlags", "D3D11_CPU_ACCESS_FLAG" }, + { "D3D11_TEXTURE2D_DESC::MiscFlags", "D3D11_RESOURCE_MISC_FLAG" }, + + { "D3D11_TEXTURE3D_DESC::BindFlags", "D3D11_BIND_FLAG" }, + { "D3D11_TEXTURE3D_DESC::CPUAccessFlags", "D3D11_CPU_ACCESS_FLAG" }, + { "D3D11_TEXTURE3D_DESC::MiscFlags", "D3D11_RESOURCE_MISC_FLAG" }, + + { "D3D11_FEATURE_DATA_FORMAT_SUPPORT::OutFormatSupport", "D3D11_FORMAT_SUPPORT" }, + { "D3D11_FEATURE_DATA_FORMAT_SUPPORT2::OutFormatSupport2", "D3D11_FORMAT_SUPPORT2" }, }; private static readonly HashSet s_visitedEnums = new(); @@ -255,9 +292,9 @@ public static class Program } // Generate docs - 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")); + //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")); return 0; } @@ -412,6 +449,23 @@ public static class Program writer.WriteLine($"#endregion Generated Enums"); writer.WriteLine(); + // Unions + writer.WriteLine($"#region Unions"); + foreach (ApiType structType in api.Types.Where(item => item.Kind.ToLowerInvariant() == "union")) + { + if (s_csNameMappings.ContainsKey($"{writer.Api}.{structType.Name}")) + { + continue; + } + + GenerateStruct(writer, structType); + + s_visitedStructs.Add($"{writer.Api}.{structType.Name}"); + } + writer.WriteLine($"#endregion Unions"); + writer.WriteLine(); + + // Structs writer.WriteLine($"#region Structs"); foreach (ApiType structType in api.Types.Where(item => item.Kind.ToLowerInvariant() == "struct")) { @@ -485,20 +539,23 @@ public static class Program writer.WriteLine("[Flags]"); } - bool noneAdded = false; + if (csTypeName == "ShaderCacheSupportFlags") + { + + } + using (writer.PushBlock($"public enum {csTypeName} : {baseTypeName}")) { if (isFlags && - !enumType.Values.Any(item => GetPrettyFieldName(item.Name, enumPrefix) == "None")) + !enumType.Values.Any(item => GetEnumItemName(enumType, item, enumPrefix) == "None")) { writer.WriteLine("None = 0,"); - noneAdded = true; } - foreach (ApiEnumValue value in enumType.Values) + foreach (ApiEnumValue enumItem in enumType.Values) { - if (value.Name.EndsWith("_FORCE_DWORD") || - value.Name.EndsWith("_FORCE_UINT")) + if (enumItem.Name.EndsWith("_FORCE_DWORD") || + enumItem.Name.EndsWith("_FORCE_UINT")) { continue; } @@ -506,34 +563,30 @@ public static class Program // Ignore D3D10, D3D11 and D3D12 in D3D if (enumType.Name.StartsWith("D3D_")) { - if (value.Name.StartsWith("D3D10_") || - value.Name.StartsWith("D3D11_") || - value.Name.StartsWith("D3D12_")) + if (enumItem.Name.StartsWith("D3D10_") || + enumItem.Name.StartsWith("D3D11_") || + enumItem.Name.StartsWith("D3D12_")) { continue; } } - if (value.Name.EndsWith("_MESSAGES_START") || - value.Name.EndsWith("_MESSAGES_END")) + if (enumItem.Name.EndsWith("_MESSAGES_START") || + enumItem.Name.EndsWith("_MESSAGES_END")) { continue; } - string enumValueName = GetPrettyFieldName(value.Name, enumPrefix); - - if (enumType.Name == "D3D_SHADER_VARIABLE_TYPE") - { - } + string enumValueName = GetEnumItemName(enumType, enumItem, enumPrefix); if (!autoGenerated) { - writer.WriteLine($"/// "); + writer.WriteLine($"/// "); } if (s_generateUnmanagedDocs) { - writer.WriteLine($"/// {value.Name}"); + writer.WriteLine($"/// {enumItem.Name}"); } if (enumValueName.StartsWith("DXGI_MSG_")) @@ -541,13 +594,29 @@ public static class Program enumValueName = enumValueName.Substring("DXGI_MSG_".Length); } - writer.WriteLine($"{enumValueName} = {value.Value},"); + writer.WriteLine($"{enumValueName} = {enumItem.Value},"); } } writer.WriteLine(); } + private static string GetEnumItemName(ApiType enumType, ApiEnumValue enumItem, string enumPrefix) + { + string enumValueName = GetPrettyFieldName(enumItem.Name, enumPrefix); + + // D3D11 has some enum name "issues" + // D3D11_FILL_MODE -> D3D11_FILL_* + if (enumValueName.StartsWith("D3D11_")) + { + string[] parts = enumType.Name.Split(new[] { '_' }, StringSplitOptions.RemoveEmptyEntries); + enumPrefix = string.Join("_", parts.Take(parts.Length - 1)); + enumValueName = GetPrettyFieldName(enumItem.Name, enumPrefix); + } + + return enumValueName; + } + private static void GenerateStruct(CodeWriter writer, ApiType structType, bool nestedType = false) { string csTypeName; @@ -570,6 +639,12 @@ public static class Program } } + bool isUnion = structType.Kind == "Union"; + if (isUnion) + { + writer.WriteLine("[StructLayout(LayoutKind.Explicit)]"); + } + using (writer.PushBlock($"public partial struct {csTypeName}")) { int fieldIndex = 0; @@ -588,6 +663,11 @@ public static class Program fieldValueName = GetPrettyFieldName(field.Name, structPrefix); } + if (structType.Name == "D3D11_OMAC") + { + fieldValueName = "Buffer"; + } + string fieldTypeName = GetTypeName(field.Type); writer.WriteLine($"/// "); @@ -616,6 +696,11 @@ public static class Program if (canUseFixed) { + if (isUnion) + { + writer.WriteLine("[FieldOffset(0)]"); + } + writer.WriteLine($"public unsafe fixed {fieldTypeName} {fieldValueName}[{field.Type.Shape.Size}];"); } else @@ -660,6 +745,10 @@ public static class Program unsafePrefix += "unsafe "; } + if (isUnion) + { + writer.WriteLine("[FieldOffset(0)]"); + } writer.WriteLine($"public {unsafePrefix}{fieldTypeName} {fieldValueName};"); } @@ -676,6 +765,51 @@ public static class Program { writer.WriteLine(); + if (isUnion == false) + { + foreach (ApiType nestedTypeToGenerate in structType.NestedTypes) + { + foreach (ApiStructField field in nestedTypeToGenerate.Fields) + { + ApiStructField parentMemberAccess = structType.Fields.First(item => item.Type.Name == nestedTypeToGenerate.Name); + string fieldTypeName = GetTypeName(field.Type); + string fieldName = GetPrettyFieldName(field.Name, structPrefix); + + writer.WriteLine("[UnscopedRef]"); + if (fieldTypeName == "Array") + { + fieldTypeName = GetTypeName(field.Type.Child); + + using (writer.PushBlock($"public unsafe Span<{fieldTypeName}> {fieldName}")) + { + writer.WriteLine("[MethodImpl(MethodImplOptions.AggressiveInlining)]"); + using (writer.PushBlock("get")) + { + writer.WriteLine($"return MemoryMarshal.CreateSpan(ref {parentMemberAccess.Name}.{fieldName}[0], {field.Type.Shape.Size});"); + } + } + } + else + { + using (writer.PushBlock($"public ref {fieldTypeName} {fieldName}")) + { + writer.WriteLine("[MethodImpl(MethodImplOptions.AggressiveInlining)]"); + using (writer.PushBlock("get")) + { + writer.WriteLineUndindented("#if NET7_0_OR_GREATER"); + writer.WriteLine($"return ref {parentMemberAccess.Name}.{fieldName};"); + writer.WriteLineUndindented("#else"); + writer.WriteLine($"return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref {parentMemberAccess.Name}.{fieldName}, 1));"); + writer.WriteLineUndindented("#endif"); + } + } + } + + writer.WriteLine(); + } + } + } + foreach (ApiType nestedTypeToGenerate in structType.NestedTypes) { GenerateStruct(writer, nestedTypeToGenerate, true); @@ -965,7 +1099,8 @@ public static class Program { if (constant.Name == "_FACDXGI" || constant.Name == "DXGI_FORMAT_DEFINED" || - constant.Name == "D3D11_FLOAT32_MAX") + constant.Name == "D3D11_FLOAT32_MAX" || + constant.Name.StartsWith("D3DX11_")) { return true; } @@ -999,8 +1134,15 @@ public static class Program string[] parts = typeName.Split(new[] { '_' }, StringSplitOptions.RemoveEmptyEntries); var sb = new StringBuilder(); - foreach (string part in parts) + for (int i = 0; i < parts.Length; i++) { + string part = parts[i]; + + if (i == 0 && s_ignoredStartParts.Contains(part)) + { + continue; + } + if (s_ignoredParts.Contains(part)) { continue; @@ -1029,9 +1171,9 @@ public static class Program else { sb.Append(char.ToUpper(part[0])); - for (int i = 1; i < part.Length; i++) + for (int j = 1; j < part.Length; j++) { - sb.Append(char.ToLower(part[i])); + sb.Append(char.ToLower(part[j])); } } } @@ -1077,12 +1219,17 @@ public static class Program sb.Append('P'); } - int partIndex = 0; - foreach (string part in parts) + for (int i = 0; i < parts.Length; i++) { + string part = parts[i]; + + if (i == 0 && s_ignoredStartParts.Contains(part)) + { + continue; + } + if (s_ignoredParts.Contains(part)) { - partIndex++; continue; } @@ -1172,9 +1319,9 @@ public static class Program else { sb.Append(char.ToUpper(part[0])); - for (int i = 1; i < part.Length; i++) + for (int j = 1; j < part.Length; j++) { - sb.Append(char.ToLower(part[i])); + sb.Append(char.ToLower(part[j])); } } } @@ -1182,16 +1329,19 @@ public static class Program if (appendUnderscore) { - if (partIndex < parts.Length - 1) + if (i < parts.Length - 1) { sb.Append('_'); } - - partIndex++; } } string prettyName = sb.ToString(); + if (string.IsNullOrEmpty(prettyName)) + { + return parts[0]; + } + return (char.IsNumber(prettyName[0])) ? "_" + prettyName : prettyName; } diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D.cs index 5e4cc43..bde6a6b 100644 --- a/src/Vortice.Win32/Generated/Graphics/Direct3D.cs +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D.cs @@ -1070,6 +1070,9 @@ public enum ParameterFlags : int #region Generated Enums #endregion Generated Enums +#region Unions +#endregion Unions + #region Structs /// /// D3D_SHADER_MACRO diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D11.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D11.cs index d4deced..22c6fb3 100644 --- a/src/Vortice.Win32/Generated/Graphics/Direct3D11.cs +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D11.cs @@ -500,9 +500,6 @@ public static partial class Apis public const uint D3D11_TRACE_MISC_GS_CUT_STREAM = 16; public const uint D3D11_TRACE_MISC_HALT = 32; public const uint D3D11_TRACE_MISC_MESSAGE = 64; - public const uint D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS = 4; - public const uint D3DX11_FFT_MAX_TEMP_BUFFERS = 4; - public const uint D3DX11_FFT_MAX_DIMENSIONS = 32; } #region Enums @@ -674,7 +671,7 @@ public enum Usage : int /// /// D3D11_BIND_FLAG [Flags] -public enum BindFlag : uint +public enum BindFlags : uint { None = 0, /// @@ -712,7 +709,7 @@ public enum BindFlag : uint /// /// D3D11_CPU_ACCESS_FLAG [Flags] -public enum CpuAccessFlag : uint +public enum CpuAccessFlags : uint { None = 0, /// @@ -726,7 +723,7 @@ public enum CpuAccessFlag : uint /// /// D3D11_RESOURCE_MISC_FLAG [Flags] -public enum ResourceMiscFlag : uint +public enum ResourceMiscFlags : uint { None = 0, /// @@ -812,7 +809,7 @@ public enum Map : int /// /// D3D11_MAP_FLAG [Flags] -public enum MapFlag : int +public enum MapFlags : int { None = 0, /// @@ -839,10 +836,10 @@ public enum ClearFlag : int None = 0, /// /// D3D11_CLEAR_DEPTH - D3D11_CLEAR_DEPTH = 1, + Depth = 1, /// /// D3D11_CLEAR_STENCIL - D3D11_CLEAR_STENCIL = 2, + Stencil = 2, } /// @@ -851,28 +848,28 @@ public enum ComparisonFunc : int { /// /// D3D11_COMPARISON_NEVER - D3D11_COMPARISON_NEVER = 1, + Never = 1, /// /// D3D11_COMPARISON_LESS - D3D11_COMPARISON_LESS = 2, + Less = 2, /// /// D3D11_COMPARISON_EQUAL - D3D11_COMPARISON_EQUAL = 3, + Equal = 3, /// /// D3D11_COMPARISON_LESS_EQUAL - D3D11_COMPARISON_LESS_EQUAL = 4, + LessEqual = 4, /// /// D3D11_COMPARISON_GREATER - D3D11_COMPARISON_GREATER = 5, + Greater = 5, /// /// D3D11_COMPARISON_NOT_EQUAL - D3D11_COMPARISON_NOT_EQUAL = 6, + NotEqual = 6, /// /// D3D11_COMPARISON_GREATER_EQUAL - D3D11_COMPARISON_GREATER_EQUAL = 7, + GreaterEqual = 7, /// /// D3D11_COMPARISON_ALWAYS - D3D11_COMPARISON_ALWAYS = 8, + Always = 8, } /// @@ -1059,10 +1056,10 @@ public enum DsvFlag : int None = 0, /// /// D3D11_DSV_READ_ONLY_DEPTH - D3D11_DSV_READ_ONLY_DEPTH = 1, + ReadOnlyDepth = 1, /// /// D3D11_DSV_READ_ONLY_STENCIL - D3D11_DSV_READ_ONLY_STENCIL = 2, + ReadOnlyStencil = 2, } /// @@ -1232,19 +1229,19 @@ public enum TextureAddressMode : int { /// /// D3D11_TEXTURE_ADDRESS_WRAP - D3D11_TEXTURE_ADDRESS_WRAP = 1, + Wrap = 1, /// /// D3D11_TEXTURE_ADDRESS_MIRROR - D3D11_TEXTURE_ADDRESS_MIRROR = 2, + Mirror = 2, /// /// D3D11_TEXTURE_ADDRESS_CLAMP - D3D11_TEXTURE_ADDRESS_CLAMP = 3, + Clamp = 3, /// /// D3D11_TEXTURE_ADDRESS_BORDER - D3D11_TEXTURE_ADDRESS_BORDER = 4, + Border = 4, /// /// D3D11_TEXTURE_ADDRESS_MIRROR_ONCE - D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5, + MirrorOnce = 5, } /// @@ -1396,7 +1393,7 @@ public enum AsyncGetdataFlag : int None = 0, /// /// D3D11_ASYNC_GETDATA_DONOTFLUSH - D3D11_ASYNC_GETDATA_DONOTFLUSH = 1, + Donotflush = 1, } /// @@ -1461,7 +1458,7 @@ public enum QueryMiscFlag : int None = 0, /// /// D3D11_QUERY_MISC_PREDICATEHINT - D3D11_QUERY_MISC_PREDICATEHINT = 1, + Predicatehint = 1, } /// @@ -1497,10 +1494,10 @@ public enum StandardMultisampleQualityLevels : int { /// /// D3D11_STANDARD_MULTISAMPLE_PATTERN - D3D11_STANDARD_MULTISAMPLE_PATTERN = -1, + Standard = -1, /// /// D3D11_CENTER_MULTISAMPLE_PATTERN - D3D11_CENTER_MULTISAMPLE_PATTERN = -2, + Center = -2, } /// @@ -1509,10 +1506,10 @@ public enum DeviceContextType : int { /// /// D3D11_DEVICE_CONTEXT_IMMEDIATE - D3D11_DEVICE_CONTEXT_IMMEDIATE = 0, + Immediate = 0, /// /// D3D11_DEVICE_CONTEXT_DEFERRED - D3D11_DEVICE_CONTEXT_DEFERRED = 1, + Deferred = 1, } /// @@ -1590,10 +1587,10 @@ public enum ShaderMinPrecisionSupport : int { /// /// D3D11_SHADER_MIN_PRECISION_10_BIT - D3D11_SHADER_MIN_PRECISION_10_BIT = 1, + Bit10 = 1, /// /// D3D11_SHADER_MIN_PRECISION_16_BIT - D3D11_SHADER_MIN_PRECISION_16_BIT = 2, + Bit16 = 2, } /// @@ -1602,7 +1599,7 @@ public enum TiledResourcesTier : int { /// /// D3D11_TILED_RESOURCES_NOT_SUPPORTED - D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0, + NotSupported = 0, /// /// D3D11_TILED_RESOURCES_TIER_1 _1 = 1, @@ -1620,7 +1617,7 @@ public enum ConservativeRasterizationTier : int { /// /// D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED - D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0, + NotSupported = 0, /// /// D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 _1 = 1, @@ -1637,16 +1634,15 @@ public enum ConservativeRasterizationTier : int [Flags] public enum ShaderCacheSupportFlags : int { - None = 0, /// /// D3D11_SHADER_CACHE_SUPPORT_NONE - D3D11_SHADER_CACHE_SUPPORT_NONE = 0, + None = 0, /// /// D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE - D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 1, + AutomaticInprocCache = 1, /// /// D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE - D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 2, + AutomaticDiskCache = 2, } /// @@ -1655,16 +1651,16 @@ public enum SharedResourceTier : int { /// /// D3D11_SHARED_RESOURCE_TIER_0 - _0 = 0, + Tier0 = 0, /// /// D3D11_SHARED_RESOURCE_TIER_1 - _1 = 1, + Tier1 = 1, /// /// D3D11_SHARED_RESOURCE_TIER_2 - _2 = 2, + Tier2 = 2, /// /// D3D11_SHARED_RESOURCE_TIER_3 - _3 = 3, + Tier3 = 3, } /// @@ -1673,31 +1669,31 @@ public enum VideoDecoderBufferType : int { /// /// D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS - D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, + PictureParameters = 0, /// /// D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL - D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, + MacroblockControl = 1, /// /// D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE - D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, + ResidualDifference = 2, /// /// D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL - D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, + DeblockingControl = 3, /// /// D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX - D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, + InverseQuantizationMatrix = 4, /// /// D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL - D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, + SliceControl = 5, /// /// D3D11_VIDEO_DECODER_BUFFER_BITSTREAM - D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, + Bitstream = 6, /// /// D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR - D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, + MotionVector = 7, /// /// D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN - D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8, + FilmGrain = 8, } /// @@ -2132,13 +2128,13 @@ public enum VideoProcessorStereoFlipMode : int { /// /// D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE - D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0, + None = 0, /// /// D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 - D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1, + Frame0 = 1, /// /// D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 - D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2, + Frame1 = 2, } /// @@ -2165,13 +2161,13 @@ public enum AuthenticatedChannelType : int { /// /// D3D11_AUTHENTICATED_CHANNEL_D3D11 - D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, + D3D11 = 1, /// /// D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE - D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, + DriverSoftware = 2, /// /// D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE - D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3, + DriverHardware = 3, } /// @@ -2210,22 +2206,22 @@ public enum BusType : int Agp = 4, /// /// D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET - D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 65536, + ImplModifierInsideOfChipset = 65536, /// /// D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP - D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 131072, + ImplModifierTracksOnMotherBoardToChip = 131072, /// /// D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET - D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 196608, + ImplModifierTracksOnMotherBoardToSocket = 196608, /// /// D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR - D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 262144, + ImplModifierDaughterBoardConnector = 262144, /// /// D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE - D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 327680, + ImplModifierDaughterBoardConnectorInsideOfNuae = 327680, /// /// D3D11_BUS_IMPL_MODIFIER_NON_STANDARD - D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = -2147483648, + ImplModifierNonStandard = -2147483648, } /// @@ -2275,31 +2271,31 @@ public enum CreateDeviceFlag : uint None = 0, /// /// D3D11_CREATE_DEVICE_SINGLETHREADED - D3D11_CREATE_DEVICE_SINGLETHREADED = 1, + Singlethreaded = 1, /// /// D3D11_CREATE_DEVICE_DEBUG - D3D11_CREATE_DEVICE_DEBUG = 2, + Debug = 2, /// /// D3D11_CREATE_DEVICE_SWITCH_TO_REF - D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4, + SwitchToRef = 4, /// /// D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS - D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8, + PreventInternalThreadingOptimizations = 8, /// /// D3D11_CREATE_DEVICE_BGRA_SUPPORT - D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32, + BgraSupport = 32, /// /// D3D11_CREATE_DEVICE_DEBUGGABLE - D3D11_CREATE_DEVICE_DEBUGGABLE = 64, + Debuggable = 64, /// /// D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY - D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128, + PreventAlteringLayerSettingsFromRegistry = 128, /// /// D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT - D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256, + DisableGpuTimeout = 256, /// /// D3D11_CREATE_DEVICE_VIDEO_SUPPORT - D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048, + VideoSupport = 2048, } /// @@ -2310,13 +2306,13 @@ public enum RldoFlags : int None = 0, /// /// D3D11_RLDO_SUMMARY - D3D11_RLDO_SUMMARY = 1, + Summary = 1, /// /// D3D11_RLDO_DETAIL - D3D11_RLDO_DETAIL = 2, + Detail = 2, /// /// D3D11_RLDO_IGNORE_INTERNAL - D3D11_RLDO_IGNORE_INTERNAL = 4, + IgnoreInternal = 4, } /// @@ -2355,49 +2351,49 @@ public enum ShaderTrackingOptions : int { /// /// D3D11_SHADER_TRACKING_OPTION_IGNORE - D3D11_SHADER_TRACKING_OPTION_IGNORE = 0, + OptionIgnore = 0, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_UNINITIALIZED - D3D11_SHADER_TRACKING_OPTION_TRACK_UNINITIALIZED = 1, + OptionTrackUninitialized = 1, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_RAW - D3D11_SHADER_TRACKING_OPTION_TRACK_RAW = 2, + OptionTrackRaw = 2, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_WAR - D3D11_SHADER_TRACKING_OPTION_TRACK_WAR = 4, + OptionTrackWar = 4, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_WAW - D3D11_SHADER_TRACKING_OPTION_TRACK_WAW = 8, + OptionTrackWaw = 8, /// /// D3D11_SHADER_TRACKING_OPTION_ALLOW_SAME - D3D11_SHADER_TRACKING_OPTION_ALLOW_SAME = 16, + OptionAllowSame = 16, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY - D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY = 32, + OptionTrackAtomicConsistency = 32, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_RAW_ACROSS_THREADGROUPS - D3D11_SHADER_TRACKING_OPTION_TRACK_RAW_ACROSS_THREADGROUPS = 64, + OptionTrackRawAcrossThreadgroups = 64, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_WAR_ACROSS_THREADGROUPS - D3D11_SHADER_TRACKING_OPTION_TRACK_WAR_ACROSS_THREADGROUPS = 128, + OptionTrackWarAcrossThreadgroups = 128, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_WAW_ACROSS_THREADGROUPS - D3D11_SHADER_TRACKING_OPTION_TRACK_WAW_ACROSS_THREADGROUPS = 256, + OptionTrackWawAcrossThreadgroups = 256, /// /// D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY_ACROSS_THREADGROUPS - D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY_ACROSS_THREADGROUPS = 512, + OptionTrackAtomicConsistencyAcrossThreadgroups = 512, /// /// D3D11_SHADER_TRACKING_OPTION_UAV_SPECIFIC_FLAGS - D3D11_SHADER_TRACKING_OPTION_UAV_SPECIFIC_FLAGS = 960, + OptionUavSpecificFlags = 960, /// /// D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS - D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS = 1006, + OptionAllHazards = 1006, /// /// D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS_ALLOWING_SAME - D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS_ALLOWING_SAME = 1022, + OptionAllHazardsAllowingSame = 1022, /// /// D3D11_SHADER_TRACKING_OPTION_ALL_OPTIONS - D3D11_SHADER_TRACKING_OPTION_ALL_OPTIONS = 1023, + OptionAllOptions = 1023, } /// @@ -3915,7 +3911,7 @@ public enum MessageId : int CreateresourceNoAutogenForVolumes = 1048616, /// /// D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED - CreateresourceFormatR8g8b8a8CannotBeShared = 1048617, + CreateresourceDxgiFormatR8g8b8a8CannotBeShared = 1048617, /// /// D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED VsshaderresourcesNotSupported = 1048618, @@ -3963,7 +3959,7 @@ public enum MessageId : int DeviceRssetscissorrectsNegativescissor = 1048632, /// /// D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA - SlotZeroMustBeInputPerVertexData = 1048633, + SlotZeroMustBeD3d10InputPerVertexData = 1048633, /// /// D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP CreateresourceNonPow2Mipmap = 1048634, @@ -6443,10 +6439,10 @@ public enum CopyFlags : int None = 0, /// /// D3D11_COPY_NO_OVERWRITE - D3D11_COPY_NO_OVERWRITE = 1, + NoOverwrite = 1, /// /// D3D11_COPY_DISCARD - D3D11_COPY_DISCARD = 2, + Discard = 2, } /// @@ -6511,7 +6507,7 @@ public enum _1CreateDeviceContextStateFlag : int None = 0, /// /// D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED - D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED = 1, + Singlethreaded = 1, } /// @@ -6541,16 +6537,16 @@ public enum VideoProcessorBehaviorHints : int { /// /// D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION = 1, + HintMultiplaneOverlayRotation = 1, /// /// D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE = 2, + HintMultiplaneOverlayResize = 2, /// /// D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION = 4, + HintMultiplaneOverlayColorSpaceConversion = 4, /// /// D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT = 8, + HintTripleBufferOutput = 8, } /// @@ -6576,7 +6572,7 @@ public enum TileMappingFlag : int None = 0, /// /// D3D11_TILE_MAPPING_NO_OVERWRITE - D3D11_TILE_MAPPING_NO_OVERWRITE = 1, + NoOverwrite = 1, } /// @@ -6587,13 +6583,13 @@ public enum TileRangeFlag : int None = 0, /// /// D3D11_TILE_RANGE_NULL - D3D11_TILE_RANGE_NULL = 1, + Null = 1, /// /// D3D11_TILE_RANGE_SKIP - D3D11_TILE_RANGE_SKIP = 2, + Skip = 2, /// /// D3D11_TILE_RANGE_REUSE_SINGLE_TILE - D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 4, + ReuseSingleTile = 4, } /// @@ -6604,7 +6600,7 @@ public enum CheckMultisampleQualityLevelsFlag : int None = 0, /// /// D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE - D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 1, + TiledResource = 1, } /// @@ -6615,13 +6611,13 @@ public enum TileCopyFlag : int None = 0, /// /// D3D11_TILE_COPY_NO_OVERWRITE - D3D11_TILE_COPY_NO_OVERWRITE = 1, + NoOverwrite = 1, /// /// D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE - D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 2, + LinearBufferToSwizzledTiledResource = 2, /// /// D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER - D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 4, + SwizzledTiledResourceToLinearBuffer = 4, } /// @@ -6735,28 +6731,28 @@ public enum VideoDecoderHistogramComponentFlags : uint None = 0, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_NONE - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_NONE = 0, + FlagNone = 0, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_Y - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_Y = 1, + FlagY = 1, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_U - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_U = 2, + FlagU = 2, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_V - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_V = 4, + FlagV = 4, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_R - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_R = 1, + FlagR = 1, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_G - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_G = 2, + FlagG = 2, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_B - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_B = 4, + FlagB = 4, /// /// D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_A - D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_A = 8, + FlagA = 8, } /// @@ -6767,7 +6763,7 @@ public enum CryptoSessionKeyExchangeFlags : uint None = 0, /// /// D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAG_NONE - D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAG_NONE = 0, + FlagNone = 0, } /// @@ -7056,6 +7052,30 @@ public enum D3dx11FftCreateFlag : int #region Generated Enums #endregion Generated Enums +#region Unions +/// +/// D3D11_AUTHENTICATED_PROTECTION_FLAGS +[StructLayout(LayoutKind.Explicit)] +public partial struct AuthenticatedProtectionFlags +{ + /// + [FieldOffset(0)] + public _Flags_e__Struct Flags; + + /// + [FieldOffset(0)] + public uint Value; + + public partial struct _Flags_e__Struct + { + /// + public uint _bitfield; + } + +} + +#endregion Unions + #region Structs /// /// D3D11_INPUT_ELEMENT_DESC @@ -7381,13 +7401,13 @@ public partial struct BufferDescription public Usage Usage; /// - public uint BindFlags; + public BindFlags BindFlags; /// - public uint CPUAccessFlags; + public CpuAccessFlags CPUAccessFlags; /// - public uint MiscFlags; + public ResourceMiscFlags MiscFlags; /// public uint StructureByteStride; @@ -7413,13 +7433,13 @@ public partial struct Texture1DDescription public Usage Usage; /// - public uint BindFlags; + public BindFlags BindFlags; /// - public uint CPUAccessFlags; + public CpuAccessFlags CPUAccessFlags; /// - public uint MiscFlags; + public ResourceMiscFlags MiscFlags; } /// @@ -7448,13 +7468,13 @@ public partial struct Texture2DDescription public Usage Usage; /// - public BindFlag BindFlags; + public BindFlags BindFlags; /// - public CpuAccessFlag CPUAccessFlags; + public CpuAccessFlags CPUAccessFlags; /// - public ResourceMiscFlag MiscFlags; + public ResourceMiscFlags MiscFlags; } /// @@ -7480,13 +7500,13 @@ public partial struct Texture3DDescription public Usage Usage; /// - public uint BindFlags; + public BindFlags BindFlags; /// - public uint CPUAccessFlags; + public CpuAccessFlags CPUAccessFlags; /// - public uint MiscFlags; + public ResourceMiscFlags MiscFlags; } /// @@ -7499,21 +7519,83 @@ public partial struct BufferSrv /// public _Anonymous2_e__Union Anonymous2; + [UnscopedRef] + public ref uint FirstElement + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous1.FirstElement; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.FirstElement, 1)); +#endif + } + } + + [UnscopedRef] + public ref uint ElementOffset + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous1.ElementOffset; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.ElementOffset, 1)); +#endif + } + } + + [UnscopedRef] + public ref uint NumElements + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous2.NumElements; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous2.NumElements, 1)); +#endif + } + } + + [UnscopedRef] + public ref uint ElementWidth + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous2.ElementWidth; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous2.ElementWidth, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous1_e__Union { /// + [FieldOffset(0)] public uint FirstElement; /// + [FieldOffset(0)] public uint ElementOffset; } + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous2_e__Union { /// + [FieldOffset(0)] public uint NumElements; /// + [FieldOffset(0)] public uint ElementWidth; } @@ -7660,39 +7742,205 @@ public partial struct ShaderResourceViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.BufferSrv Buffer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Buffer; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Buffer, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dSrv Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArraySrv Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dSrv Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArraySrv Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsSrv Texture2DMS + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMS; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMS, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsArraySrv Texture2DMSArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMSArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMSArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex3dSrv Texture3D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture3D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture3D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.TexcubeSrv TextureCube + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.TextureCube; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.TextureCube, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.TexcubeArraySrv TextureCubeArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.TextureCubeArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.TextureCubeArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.BufferExtendedSrv BufferEx + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.BufferEx; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.BufferEx, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public BufferSrv Buffer; /// + [FieldOffset(0)] public Tex1dSrv Texture1D; /// + [FieldOffset(0)] public Tex1dArraySrv Texture1DArray; /// + [FieldOffset(0)] public Tex2dSrv Texture2D; /// + [FieldOffset(0)] public Tex2dArraySrv Texture2DArray; /// + [FieldOffset(0)] public Tex2dmsSrv Texture2DMS; /// + [FieldOffset(0)] public Tex2dmsArraySrv Texture2DMSArray; /// + [FieldOffset(0)] public Tex3dSrv Texture3D; /// + [FieldOffset(0)] public TexcubeSrv TextureCube; /// + [FieldOffset(0)] public TexcubeArraySrv TextureCubeArray; /// + [FieldOffset(0)] public BufferExtendedSrv BufferEx; } @@ -7708,21 +7956,83 @@ public partial struct BufferRtv /// public _Anonymous2_e__Union Anonymous2; + [UnscopedRef] + public ref uint NumElements + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous2.NumElements; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous2.NumElements, 1)); +#endif + } + } + + [UnscopedRef] + public ref uint ElementWidth + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous2.ElementWidth; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous2.ElementWidth, 1)); +#endif + } + } + + [UnscopedRef] + public ref uint FirstElement + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous1.FirstElement; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.FirstElement, 1)); +#endif + } + } + + [UnscopedRef] + public ref uint ElementOffset + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous1.ElementOffset; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.ElementOffset, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous2_e__Union { /// + [FieldOffset(0)] public uint NumElements; /// + [FieldOffset(0)] public uint ElementWidth; } + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous1_e__Union { /// + [FieldOffset(0)] public uint FirstElement; /// + [FieldOffset(0)] public uint ElementOffset; } @@ -7818,30 +8128,151 @@ public partial struct RenderTargetViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.BufferRtv Buffer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Buffer; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Buffer, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dRtv Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArrayRtv Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dRtv Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArrayRtv Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsRtv Texture2DMS + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMS; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMS, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsArrayRtv Texture2DMSArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMSArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMSArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex3dRtv Texture3D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture3D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture3D, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public BufferRtv Buffer; /// + [FieldOffset(0)] public Tex1dRtv Texture1D; /// + [FieldOffset(0)] public Tex1dArrayRtv Texture1DArray; /// + [FieldOffset(0)] public Tex2dRtv Texture2D; /// + [FieldOffset(0)] public Tex2dArrayRtv Texture2DArray; /// + [FieldOffset(0)] public Tex2dmsRtv Texture2DMS; /// + [FieldOffset(0)] public Tex2dmsArrayRtv Texture2DMSArray; /// + [FieldOffset(0)] public Tex3dRtv Texture3D; } @@ -7926,24 +8357,115 @@ public partial struct DepthStencilViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dDsv Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArrayDsv Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dDsv Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArrayDsv Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsDsv Texture2DMS + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMS; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMS, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsArrayDsv Texture2DMSArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMSArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMSArray, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public Tex1dDsv Texture1D; /// + [FieldOffset(0)] public Tex1dArrayDsv Texture1DArray; /// + [FieldOffset(0)] public Tex2dDsv Texture2D; /// + [FieldOffset(0)] public Tex2dArrayDsv Texture2DArray; /// + [FieldOffset(0)] public Tex2dmsDsv Texture2DMS; /// + [FieldOffset(0)] public Tex2dmsArrayDsv Texture2DMSArray; } @@ -8034,24 +8556,115 @@ public partial struct UnorderedAccessViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.BufferUav Buffer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Buffer; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Buffer, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dUav Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArrayUav Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dUav Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArrayUav Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex3dUav Texture3D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture3D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture3D, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public BufferUav Buffer; /// + [FieldOffset(0)] public Tex1dUav Texture1D; /// + [FieldOffset(0)] public Tex1dArrayUav Texture1DArray; /// + [FieldOffset(0)] public Tex2dUav Texture2D; /// + [FieldOffset(0)] public Tex2dArrayUav Texture2DArray; /// + [FieldOffset(0)] public Tex3dUav Texture3D; } @@ -8244,7 +8857,7 @@ public partial struct FeatureDataFormatSupport public Graphics.Dxgi.Common.Format InFormat; /// - public uint OutFormatSupport; + public FormatSupport OutFormatSupport; } /// @@ -8255,12 +8868,12 @@ public partial struct FeatureDataFormatSupport2 public Graphics.Dxgi.Common.Format InFormat; /// - public uint OutFormatSupport2; + public FormatSupport2 OutFormatSupport2; } /// /// D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS -public partial struct FeatureDataXHardwareOptions +public partial struct FeatureDataD3d10XHardwareOptions { /// public Bool32 ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x; @@ -8268,7 +8881,7 @@ public partial struct FeatureDataXHardwareOptions /// /// D3D11_FEATURE_DATA_D3D11_OPTIONS -public partial struct FeatureDataOptions +public partial struct FeatureDataD3d11Options { /// public Bool32 OutputMergerLogicOp; @@ -8350,7 +8963,7 @@ public partial struct FeatureDataShaderMinPrecisionSupport /// /// D3D11_FEATURE_DATA_D3D11_OPTIONS1 -public partial struct FeatureDataOptions1 +public partial struct FeatureDataD3d11Options1 { /// public TiledResourcesTier TiledResourcesTier; @@ -8400,7 +9013,7 @@ public partial struct FeatureDataD3d9Options1 /// /// D3D11_FEATURE_DATA_D3D11_OPTIONS2 -public partial struct FeatureDataOptions2 +public partial struct FeatureDataD3d11Options2 { /// public Bool32 PSSpecifiedStencilRefSupported; @@ -8429,7 +9042,7 @@ public partial struct FeatureDataOptions2 /// /// D3D11_FEATURE_DATA_D3D11_OPTIONS3 -public partial struct FeatureDataOptions3 +public partial struct FeatureDataD3d11Options3 { /// public Bool32 VPAndRTArrayIndexFromAnyShaderFeedingRasterizer; @@ -8467,7 +9080,7 @@ public partial struct FeatureDataDisplayable /// /// D3D11_FEATURE_DATA_D3D11_OPTIONS5 -public partial struct FeatureDataOptions5 +public partial struct FeatureDataD3d11Options5 { /// public SharedResourceTier SharedResourceTier; @@ -8823,12 +9436,43 @@ public partial struct VideoColor /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.VideoColorYcbcra YCbCr + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.YCbCr; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.YCbCr, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.VideoColorRgba RGBA + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.RGBA; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.RGBA, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public VideoColorYcbcra YCbCr; /// + [FieldOffset(0)] public VideoColorRgba RGBA; } @@ -8885,7 +9529,7 @@ public partial struct VideoProcessorStream public partial struct Omac { /// - public unsafe fixed byte OmacF[16]; + public unsafe fixed byte Buffer[16]; } /// @@ -8930,7 +9574,7 @@ public partial struct AuthenticatedQueryProtectionOutput public AuthenticatedQueryOutput Output; /// - //public D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags; + public AuthenticatedProtectionFlags ProtectionFlags; } /// @@ -9224,7 +9868,7 @@ public partial struct AuthenticatedConfigureProtectionInput public AuthenticatedConfigureInput Parameters; /// - //public D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections; + public AuthenticatedProtectionFlags Protections; } /// @@ -9293,9 +9937,25 @@ public partial struct VideoDecoderOutputViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dVdov Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public Tex2dVdov Texture2D; } @@ -9325,9 +9985,25 @@ public partial struct VideoProcessorInputViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dVpiv Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public Tex2dVpiv Texture2D; } @@ -9365,12 +10041,43 @@ public partial struct VideoProcessorOutputViewDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dVpov Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArrayVpov Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public Tex2dVpov Texture2D; /// + [FieldOffset(0)] public Tex2dArrayVpov Texture2DArray; } @@ -9940,39 +10647,205 @@ public partial struct ShaderResourceViewDescription1 /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.BufferSrv Buffer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Buffer; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Buffer, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dSrv Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArraySrv Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dSrv1 Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArraySrv1 Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsSrv Texture2DMS + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMS; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMS, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsArraySrv Texture2DMSArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMSArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMSArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex3dSrv Texture3D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture3D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture3D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.TexcubeSrv TextureCube + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.TextureCube; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.TextureCube, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.TexcubeArraySrv TextureCubeArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.TextureCubeArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.TextureCubeArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.BufferExtendedSrv BufferEx + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.BufferEx; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.BufferEx, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public BufferSrv Buffer; /// + [FieldOffset(0)] public Tex1dSrv Texture1D; /// + [FieldOffset(0)] public Tex1dArraySrv Texture1DArray; /// + [FieldOffset(0)] public Tex2dSrv1 Texture2D; /// + [FieldOffset(0)] public Tex2dArraySrv1 Texture2DArray; /// + [FieldOffset(0)] public Tex2dmsSrv Texture2DMS; /// + [FieldOffset(0)] public Tex2dmsArraySrv Texture2DMSArray; /// + [FieldOffset(0)] public Tex3dSrv Texture3D; /// + [FieldOffset(0)] public TexcubeSrv TextureCube; /// + [FieldOffset(0)] public TexcubeArraySrv TextureCubeArray; /// + [FieldOffset(0)] public BufferExtendedSrv BufferEx; } @@ -10019,30 +10892,151 @@ public partial struct RenderTargetViewDescription1 /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.BufferRtv Buffer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Buffer; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Buffer, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dRtv Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArrayRtv Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dRtv1 Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArrayRtv1 Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsRtv Texture2DMS + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMS; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMS, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dmsArrayRtv Texture2DMSArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DMSArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DMSArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex3dRtv Texture3D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture3D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture3D, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public BufferRtv Buffer; /// + [FieldOffset(0)] public Tex1dRtv Texture1D; /// + [FieldOffset(0)] public Tex1dArrayRtv Texture1DArray; /// + [FieldOffset(0)] public Tex2dRtv1 Texture2D; /// + [FieldOffset(0)] public Tex2dArrayRtv1 Texture2DArray; /// + [FieldOffset(0)] public Tex2dmsRtv Texture2DMS; /// + [FieldOffset(0)] public Tex2dmsArrayRtv Texture2DMSArray; /// + [FieldOffset(0)] public Tex3dRtv Texture3D; } @@ -10089,24 +11083,115 @@ public partial struct UnorderedAccessViewDescription1 /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.BufferUav Buffer + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Buffer; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Buffer, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dUav Texture1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex1dArrayUav Texture1DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture1DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture1DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dUav1 Texture2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2D, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex2dArrayUav1 Texture2DArray + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture2DArray; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture2DArray, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.Tex3dUav Texture3D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Texture3D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Texture3D, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public BufferUav Buffer; /// + [FieldOffset(0)] public Tex1dUav Texture1D; /// + [FieldOffset(0)] public Tex1dArrayUav Texture1DArray; /// + [FieldOffset(0)] public Tex2dUav1 Texture2D; /// + [FieldOffset(0)] public Tex2dArrayUav1 Texture2DArray; /// + [FieldOffset(0)] public Tex3dUav Texture3D; } @@ -10177,7 +11262,7 @@ public partial struct VideoDecoderBufferDescription2 /// /// D3D11_FEATURE_DATA_D3D11_OPTIONS4 -public partial struct FeatureDataOptions4 +public partial struct FeatureDataD3d11Options4 { /// public Bool32 ExtendedNV12SharedTextureSupported; @@ -10679,24 +11764,115 @@ public partial struct ShaderTraceDescription /// public _Anonymous_e__Union Anonymous; + [UnscopedRef] + public ref Graphics.Direct3D11.VertexShaderTraceDescription VertexShaderTraceDesc + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.VertexShaderTraceDesc; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.VertexShaderTraceDesc, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.HullShaderTraceDescription HullShaderTraceDesc + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.HullShaderTraceDesc; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.HullShaderTraceDesc, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.DomainShaderTraceDescription DomainShaderTraceDesc + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.DomainShaderTraceDesc; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.DomainShaderTraceDesc, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.GeometryShaderTraceDescription GeometryShaderTraceDesc + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.GeometryShaderTraceDesc; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.GeometryShaderTraceDesc, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.PixelShaderTraceDescription PixelShaderTraceDesc + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.PixelShaderTraceDesc; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PixelShaderTraceDesc, 1)); +#endif + } + } + + [UnscopedRef] + public ref Graphics.Direct3D11.ComputeShaderTraceDescription ComputeShaderTraceDesc + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.ComputeShaderTraceDesc; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.ComputeShaderTraceDesc, 1)); +#endif + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public VertexShaderTraceDescription VertexShaderTraceDesc; /// + [FieldOffset(0)] public HullShaderTraceDescription HullShaderTraceDesc; /// + [FieldOffset(0)] public DomainShaderTraceDescription DomainShaderTraceDesc; /// + [FieldOffset(0)] public GeometryShaderTraceDescription GeometryShaderTraceDesc; /// + [FieldOffset(0)] public PixelShaderTraceDescription PixelShaderTraceDesc; /// + [FieldOffset(0)] public ComputeShaderTraceDescription ComputeShaderTraceDesc; } @@ -10803,12 +11979,39 @@ public partial struct TraceRegister /// public byte Flags; + [UnscopedRef] + public ref ushort Index1D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { +#if NET7_0_OR_GREATER + return ref Anonymous.Index1D; +#else + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.Index1D, 1)); +#endif + } + } + + [UnscopedRef] + public unsafe Span Index2D + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return MemoryMarshal.CreateSpan(ref Anonymous.Index2D[0], 2); + } + } + + [StructLayout(LayoutKind.Explicit)] public partial struct _Anonymous_e__Union { /// + [FieldOffset(0)] public ushort Index1D; /// + [FieldOffset(0)] public unsafe fixed ushort Index2D[2]; } diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi.Common.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common.cs index 539fd6d..23ef0b3 100644 --- a/src/Vortice.Win32/Generated/Graphics/Dxgi.Common.cs +++ b/src/Vortice.Win32/Generated/Graphics/Dxgi.Common.cs @@ -570,6 +570,9 @@ public enum CpuAccess : uint #endregion Generated Enums +#region Unions +#endregion Unions + #region Structs /// /// DXGI_RATIONAL diff --git a/src/Vortice.Win32/Generated/Graphics/Dxgi.cs b/src/Vortice.Win32/Generated/Graphics/Dxgi.cs index f7efa91..e50ee4e 100644 --- a/src/Vortice.Win32/Generated/Graphics/Dxgi.cs +++ b/src/Vortice.Win32/Generated/Graphics/Dxgi.cs @@ -1650,6 +1650,9 @@ public enum WindowAssociationFlags : uint #endregion Generated Enums +#region Unions +#endregion Unions + #region Structs /// /// DXGI_RGBA diff --git a/src/Vortice.Win32/Graphics/Direct3D11.Manual.cs b/src/Vortice.Win32/Graphics/Direct3D11.Manual.cs new file mode 100644 index 0000000..f06dc54 --- /dev/null +++ b/src/Vortice.Win32/Graphics/Direct3D11.Manual.cs @@ -0,0 +1,57 @@ +// Copyright © Amer Koleci and Contributors. +// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information. + +using System.Runtime.CompilerServices; +using static Win32.Graphics.Dxgi.Apis; +using static Win32.StringUtilities; + +namespace Win32.Graphics.Direct3D11; + +public partial struct AuthenticatedProtectionFlags +{ + public partial struct _Flags_e__Struct + { + public uint ProtectionEnabled + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return _bitfield & 0x1u; + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + _bitfield = (_bitfield & ~0x1u) | (value & 0x1u); + } + } + + public uint OverlayOrFullscreenRequired + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return (_bitfield >> 1) & 0x1u; + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + _bitfield = (_bitfield & ~(0x1u << 1)) | ((value & 0x1u) << 1); + } + } + + [NativeTypeName("uint : 30")] + public uint Reserved + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return (_bitfield >> 2) & 0x3FFFFFFFu; + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + _bitfield = (_bitfield & ~(0x3FFFFFFFu << 2)) | ((value & 0x3FFFFFFFu) << 2); + } + } + } +}