From 4e7162db9adeed8ca3bb077113b4261a66dedf21 Mon Sep 17 00:00:00 2001 From: Amer Koleci Date: Wed, 7 Sep 2022 14:30:57 +0200 Subject: [PATCH] Generator: Give some love to D3D12 enums as well --- src/Generator/Program.cs | 58 ++- .../Generated/Graphics/Direct3D12.cs | 361 ++++++++---------- src/Vortice.Win32/UnsafeUtilities.cs | 21 - .../01-ClearScreen/01-ClearScreen.csproj | 1 - 4 files changed, 201 insertions(+), 240 deletions(-) diff --git a/src/Generator/Program.cs b/src/Generator/Program.cs index 3b75753..c7dd833 100644 --- a/src/Generator/Program.cs +++ b/src/Generator/Program.cs @@ -100,6 +100,7 @@ public static class Program { "D3D_SHADER_CBUFFER_FLAGS", "D3D_CBF" }, // D3D11 -> handled in code + // D3D12 -> handled in code }; private static readonly Dictionary s_partRenames = new() @@ -162,6 +163,9 @@ public static class Program { "MIN16INT", "Min16Int" }, { "MIN16UINT", "Min16Uint" }, { "KEYEDMUTEX", "KeyedMutex" }, + { "GETDATA", "GetData" }, + { "DONOTFLUSH", "DoNotFlush" }, + { "PREDICATEHINT", "PredicateHint" }, }; private static readonly Dictionary s_knownEnumValueNames = new() @@ -210,6 +214,8 @@ public static class Program "HW", "YUV", "GDI", + "IA", + "SO", }; private static readonly Dictionary s_typesNameRemap = new() @@ -231,6 +237,8 @@ public static class Program { "D3D11_FORMAT_SUPPORT", "FormatSupport" }, { "D3D11_FORMAT_SUPPORT2", "FormatSupport2" }, { "D3D11_DSV_FLAG", "DsvFlags" }, + { "D3D11_COLOR_WRITE_ENABLE", "ColorWriteEnable" }, + { "D3D12_COLOR_WRITE_ENABLE", "ColorWriteEnable" }, }; private static readonly Dictionary s_structFieldTypeRemap = new() @@ -262,7 +270,11 @@ public static class Program { "D3D11_FEATURE_DATA_FORMAT_SUPPORT::OutFormatSupport", "D3D11_FORMAT_SUPPORT" }, { "D3D11_FEATURE_DATA_FORMAT_SUPPORT2::OutFormatSupport2", "D3D11_FORMAT_SUPPORT2" }, + { "D3D11_RENDER_TARGET_BLEND_DESC::RenderTargetWriteMask", "D3D11_COLOR_WRITE_ENABLE" }, + { "D3D11_RENDER_TARGET_BLEND_DESC1::RenderTargetWriteMask", "D3D11_COLOR_WRITE_ENABLE" }, { "D3D11_DEPTH_STENCIL_VIEW_DESC::Flags", "D3D11_DSV_FLAG" }, + + { "D3D12_RENDER_TARGET_BLEND_DESC::RenderTargetWriteMask", "D3D12_COLOR_WRITE_ENABLE" }, }; private static readonly HashSet s_visitedEnums = new(); @@ -642,12 +654,27 @@ public static class Program csTypeName.EndsWith("Flags")) { isFlags = true; + + } + + // Know flag members + if (enumType.Name == "D3D11_FORMAT_SUPPORT" || + enumType.Name == "D3D11_FORMAT_SUPPORT2" || + enumType.Name == "D3D11_COLOR_WRITE_ENABLE" || + enumType.Name == "D3D12_COLOR_WRITE_ENABLE") + { + isFlags = true; + } + + if (isFlags) + { writer.WriteLine("[Flags]"); } - if (csTypeName == "ShaderCacheSupportFlags") + if (enumType.Name == "D3D11_COLOR_WRITE_ENABLE" || + enumType.Name == "D3D12_COLOR_WRITE_ENABLE") { - + baseTypeName = "byte"; } using (writer.PushBlock($"public enum {csTypeName} : {baseTypeName}")) @@ -720,6 +747,14 @@ public static class Program enumValueName = GetPrettyFieldName(enumItem.Name, enumPrefix); } + // D3D12 FLAGS/FLAG + // D3D12_COMMAND_QUEUE_FLAGS -> D3D12_COMMAND_QUEUE_FLAG_NONE + if (enumValueName.StartsWith("D3D12_") && enumType.Name.EndsWith("FLAGS")) + { + enumPrefix = enumType.Name.Substring(0, enumType.Name.Length - 1); + enumValueName = GetPrettyFieldName(enumItem.Name, enumPrefix); + } + return enumValueName; } @@ -980,7 +1015,7 @@ public static class Program writer.WriteLine($"[NativeInheritance(\"{comType.Interface.Name}\")]"); } - using (writer.PushBlock($"public unsafe partial struct {csTypeName} : {csTypeName}.Interface")) + using (writer.PushBlock($"public unsafe partial struct {csTypeName}")) { if (comType.Guid != null) { @@ -1213,31 +1248,14 @@ public static class Program using (writer.PushBlock($"public {methodSuffix}{returnType} {method.Name}({argumentsString})")) { - writer.WriteLineUndindented("#if NET6_0_OR_GREATER"); - if (returnType != "void") - writer.Write("return "); - writer.WriteLine($"((delegate* unmanaged<{comType.Name}*, {argumentTypesString}>)(lpVtbl[{vtblIndex}]))(({comType.Name}*)Unsafe.AsPointer(ref this){argumentNamesString});"); - writer.WriteLineUndindented("#else"); if (returnType != "void") writer.Write("return "); writer.WriteLine($"((delegate* unmanaged[Stdcall]<{comType.Name}*, {argumentTypesString}>)(lpVtbl[{vtblIndex}]))(({comType.Name}*)Unsafe.AsPointer(ref this){argumentNamesString});"); - writer.WriteLineUndindented("#endif"); } writer.WriteLine(); vtblIndex++; } - - string baseInterfaceType = string.Empty; - if (comType.Interface != null) - { - baseInterfaceType = $" : {comType.Interface.Name}.Interface"; - } - - using (writer.PushBlock($"public interface Interface{baseInterfaceType}")) - { - } - //writer.WriteLine(); } writer.WriteLine(); diff --git a/src/Vortice.Win32/Generated/Graphics/Direct3D12.cs b/src/Vortice.Win32/Generated/Graphics/Direct3D12.cs index 6a35ad6..6f81a7b 100644 --- a/src/Vortice.Win32/Generated/Graphics/Direct3D12.cs +++ b/src/Vortice.Win32/Generated/Graphics/Direct3D12.cs @@ -520,13 +520,12 @@ public enum CommandListType : int [Flags] public enum CommandQueueFlags : uint { - None = 0, /// /// D3D12_COMMAND_QUEUE_FLAG_NONE - D3D12_COMMAND_QUEUE_FLAG_NONE = 0, + None = 0, /// /// D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT - D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 1, + DisableGpuTimeout = 1, } /// @@ -756,8 +755,10 @@ public enum BlendOp : int /// /// D3D12_COLOR_WRITE_ENABLE -public enum ColorWriteEnable : int +[Flags] +public enum ColorWriteEnable : byte { + None = 0, /// /// D3D12_COLOR_WRITE_ENABLE_RED Red = 1, @@ -861,13 +862,12 @@ public enum IndexBufferStripCutValue : int [Flags] public enum PipelineStateFlags : uint { - None = 0, /// /// D3D12_PIPELINE_STATE_FLAG_NONE - D3D12_PIPELINE_STATE_FLAG_NONE = 0, + None = 0, /// /// D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG - D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 1, + ToolDebug = 1, } /// @@ -1431,31 +1431,30 @@ public enum ShaderCacheSupportFlags : uint [Flags] public enum CommandListSupportFlags : uint { - None = 0, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE - D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0, + None = 0, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT - D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 1, + Direct = 1, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE - D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 2, + Bundle = 2, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE - D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 4, + Compute = 4, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY - D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 8, + Copy = 8, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 16, + VideoDecode = 16, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 32, + VideoProcess = 32, /// /// D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE - D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 64, + VideoEncode = 64, } /// @@ -1625,55 +1624,54 @@ public enum MemoryPool : int [Flags] public enum HeapFlags : uint { - None = 0, /// /// D3D12_HEAP_FLAG_NONE - D3D12_HEAP_FLAG_NONE = 0, + None = 0, /// /// D3D12_HEAP_FLAG_SHARED - D3D12_HEAP_FLAG_SHARED = 1, + Shared = 1, /// /// D3D12_HEAP_FLAG_DENY_BUFFERS - D3D12_HEAP_FLAG_DENY_BUFFERS = 4, + DenyBuffers = 4, /// /// D3D12_HEAP_FLAG_ALLOW_DISPLAY - D3D12_HEAP_FLAG_ALLOW_DISPLAY = 8, + AllowDisplay = 8, /// /// D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER - D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 32, + SharedCrossAdapter = 32, /// /// D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES - D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 64, + DenyRtDsTextures = 64, /// /// D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES - D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 128, + DenyNonRtDsTextures = 128, /// /// D3D12_HEAP_FLAG_HARDWARE_PROTECTED - D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 256, + HardwareProtected = 256, /// /// D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH - D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 512, + AllowWriteWatch = 512, /// /// D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS - D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 1024, + AllowShaderAtomics = 1024, /// /// D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT - D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 2048, + CreateNotResident = 2048, /// /// D3D12_HEAP_FLAG_CREATE_NOT_ZEROED - D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 4096, + CreateNotZeroed = 4096, /// /// D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES - D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, + AllowAllBuffersAndTextures = 0, /// /// D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS - D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 192, + AllowOnlyBuffers = 192, /// /// D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES - D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 68, + AllowOnlyNonRtDsTextures = 68, /// /// D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES - D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 132, + AllowOnlyRtDsTextures = 132, } /// @@ -1720,34 +1718,33 @@ public enum TextureLayout : int [Flags] public enum ResourceFlags : uint { - None = 0, /// /// D3D12_RESOURCE_FLAG_NONE - D3D12_RESOURCE_FLAG_NONE = 0, + None = 0, /// /// D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET - D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1, + AllowRenderTarget = 1, /// /// D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL - D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2, + AllowDepthStencil = 2, /// /// D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS - D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4, + AllowUnorderedAccess = 4, /// /// D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE - D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8, + DenyShaderResource = 8, /// /// D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER - D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16, + AllowCrossAdapter = 16, /// /// D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS - D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32, + AllowSimultaneousAccess = 32, /// /// D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY - D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64, + VideoDecodeReferenceOnly = 64, /// /// D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY - D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128, + VideoEncodeReferenceOnly = 128, } /// @@ -1755,19 +1752,18 @@ public enum ResourceFlags : uint [Flags] public enum TileRangeFlags : int { - None = 0, /// /// D3D12_TILE_RANGE_FLAG_NONE - D3D12_TILE_RANGE_FLAG_NONE = 0, + None = 0, /// /// D3D12_TILE_RANGE_FLAG_NULL - D3D12_TILE_RANGE_FLAG_NULL = 1, + Null = 1, /// /// D3D12_TILE_RANGE_FLAG_SKIP - D3D12_TILE_RANGE_FLAG_SKIP = 2, + Skip = 2, /// /// D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE - D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4, + ReuseSingleTile = 4, } /// @@ -1775,13 +1771,12 @@ public enum TileRangeFlags : int [Flags] public enum TileMappingFlags : uint { - None = 0, /// /// D3D12_TILE_MAPPING_FLAG_NONE - D3D12_TILE_MAPPING_FLAG_NONE = 0, + None = 0, /// /// D3D12_TILE_MAPPING_FLAG_NO_HAZARD - D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 1, + NoHazard = 1, } /// @@ -1789,19 +1784,18 @@ public enum TileMappingFlags : uint [Flags] public enum TileCopyFlags : uint { - None = 0, /// /// D3D12_TILE_COPY_FLAG_NONE - D3D12_TILE_COPY_FLAG_NONE = 0, + None = 0, /// /// D3D12_TILE_COPY_FLAG_NO_HAZARD - D3D12_TILE_COPY_FLAG_NO_HAZARD = 1, + NoHazard = 1, /// /// D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE - D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 2, + LinearBufferToSwizzledTiledResource = 2, /// /// D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER - D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 4, + SwizzledTiledResourceToLinearBuffer = 4, } /// @@ -1913,16 +1907,15 @@ public enum ResourceBarrierType : int [Flags] public enum ResourceBarrierFlags : uint { - None = 0, /// /// D3D12_RESOURCE_BARRIER_FLAG_NONE - D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, + None = 0, /// /// D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY - D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 1, + BeginOnly = 1, /// /// D3D12_RESOURCE_BARRIER_FLAG_END_ONLY - D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 2, + EndOnly = 2, } /// @@ -1966,13 +1959,12 @@ public enum ResolveMode : int [Flags] public enum ViewInstancingFlags : uint { - None = 0, /// /// D3D12_VIEW_INSTANCING_FLAG_NONE - D3D12_VIEW_INSTANCING_FLAG_NONE = 0, + None = 0, /// /// D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING - D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 1, + EnableViewInstanceMasking = 1, } /// @@ -2004,13 +1996,12 @@ public enum ShaderComponentMapping : int [Flags] public enum BufferSrvFlags : uint { - None = 0, /// /// D3D12_BUFFER_SRV_FLAG_NONE - D3D12_BUFFER_SRV_FLAG_NONE = 0, + None = 0, /// /// D3D12_BUFFER_SRV_FLAG_RAW - D3D12_BUFFER_SRV_FLAG_RAW = 1, + Raw = 1, } /// @@ -2225,13 +2216,12 @@ public enum TextureAddressMode : int [Flags] public enum BufferUavFlags : uint { - None = 0, /// /// D3D12_BUFFER_UAV_FLAG_NONE - D3D12_BUFFER_UAV_FLAG_NONE = 0, + None = 0, /// /// D3D12_BUFFER_UAV_FLAG_RAW - D3D12_BUFFER_UAV_FLAG_RAW = 1, + Raw = 1, } /// @@ -2299,16 +2289,15 @@ public enum RtvDimension : int [Flags] public enum DsvFlags : uint { - None = 0, /// /// D3D12_DSV_FLAG_NONE - D3D12_DSV_FLAG_NONE = 0, + None = 0, /// /// D3D12_DSV_FLAG_READ_ONLY_DEPTH - D3D12_DSV_FLAG_READ_ONLY_DEPTH = 1, + ReadOnlyDepth = 1, /// /// D3D12_DSV_FLAG_READ_ONLY_STENCIL - D3D12_DSV_FLAG_READ_ONLY_STENCIL = 2, + ReadOnlyStencil = 2, } /// @@ -2346,10 +2335,10 @@ public enum ClearFlags : uint None = 0, /// /// D3D12_CLEAR_FLAG_DEPTH - D3D12_CLEAR_FLAG_DEPTH = 1, + Depth = 1, /// /// D3D12_CLEAR_FLAG_STENCIL - D3D12_CLEAR_FLAG_STENCIL = 2, + Stencil = 2, } /// @@ -2357,19 +2346,18 @@ public enum ClearFlags : uint [Flags] public enum FenceFlags : uint { - None = 0, /// /// D3D12_FENCE_FLAG_NONE - D3D12_FENCE_FLAG_NONE = 0, + None = 0, /// /// D3D12_FENCE_FLAG_SHARED - D3D12_FENCE_FLAG_SHARED = 1, + Shared = 1, /// /// D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER - D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 2, + SharedCrossAdapter = 2, /// /// D3D12_FENCE_FLAG_NON_MONITORED - D3D12_FENCE_FLAG_NON_MONITORED = 4, + NonMonitored = 4, } /// @@ -2398,13 +2386,12 @@ public enum DescriptorHeapType : int [Flags] public enum DescriptorHeapFlags : uint { - None = 0, /// /// D3D12_DESCRIPTOR_HEAP_FLAG_NONE - D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, + None = 0, /// /// D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE - D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1, + ShaderVisible = 1, } /// @@ -2481,46 +2468,45 @@ public enum RootParameterType : int [Flags] public enum RootSignatureFlags : uint { - None = 0, /// /// D3D12_ROOT_SIGNATURE_FLAG_NONE - D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, + None = 0, /// /// D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 1, + AllowInputAssemblerInputLayout = 1, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 2, + DenyVertexShaderRootAccess = 2, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 4, + DenyHullShaderRootAccess = 4, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 8, + DenyDomainShaderRootAccess = 8, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 16, + DenyGeometryShaderRootAccess = 16, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 32, + DenyPixelShaderRootAccess = 32, /// /// D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 64, + AllowStreamOutput = 64, /// /// D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE - D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 128, + LocalRootSignature = 128, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 256, + DenyAmplificationShaderRootAccess = 256, /// /// D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS - D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 512, + DenyMeshShaderRootAccess = 512, /// /// D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED - D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 1024, + CbvSrvUavHeapDirectlyIndexed = 1024, /// /// D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED - D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 2048, + SamplerHeapDirectlyIndexed = 2048, } /// @@ -2543,25 +2529,24 @@ public enum StaticBorderColor : int [Flags] public enum DescriptorRangeFlags : uint { - None = 0, /// /// D3D12_DESCRIPTOR_RANGE_FLAG_NONE - D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0, + None = 0, /// /// D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE - D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 1, + DescriptorsVolatile = 1, /// /// D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 2, + DataVolatile = 2, /// /// D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 4, + DataStaticWhileSetAtExecute = 4, /// /// D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC - D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 8, + DataStatic = 8, /// /// D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS - D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 65536, + DescriptorsStaticKeepingBufferBoundsChecks = 65536, } /// @@ -2569,19 +2554,18 @@ public enum DescriptorRangeFlags : uint [Flags] public enum RootDescriptorFlags : uint { - None = 0, /// /// D3D12_ROOT_DESCRIPTOR_FLAG_NONE - D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0, + None = 0, /// /// D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 2, + DataVolatile = 2, /// /// D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 4, + DataStaticWhileSetAtExecute = 4, /// /// D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC - D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 8, + DataStatic = 8, } /// @@ -2718,16 +2702,15 @@ public enum WritebufferimmediateMode : int [Flags] public enum MultipleFenceWaitFlags : uint { - None = 0, /// /// D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE - D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0, + None = 0, /// /// D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY - D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 1, + Any = 1, /// /// D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL - D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0, + All = 0, } /// @@ -2756,13 +2739,12 @@ public enum ResidencyPriority : int [Flags] public enum ResidencyFlags : uint { - None = 0, /// /// D3D12_RESIDENCY_FLAG_NONE - D3D12_RESIDENCY_FLAG_NONE = 0, + None = 0, /// /// D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET - D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 1, + DenyOverbudget = 1, } /// @@ -2770,10 +2752,9 @@ public enum ResidencyFlags : uint [Flags] public enum CommandListFlags : uint { - None = 0, /// /// D3D12_COMMAND_LIST_FLAG_NONE - D3D12_COMMAND_LIST_FLAG_NONE = 0, + None = 0, } /// @@ -2781,10 +2762,9 @@ public enum CommandListFlags : uint [Flags] public enum CommandPoolFlags : uint { - None = 0, /// /// D3D12_COMMAND_POOL_FLAG_NONE - D3D12_COMMAND_POOL_FLAG_NONE = 0, + None = 0, } /// @@ -2792,10 +2772,9 @@ public enum CommandPoolFlags : uint [Flags] public enum CommandRecorderFlags : uint { - None = 0, /// /// D3D12_COMMAND_RECORDER_FLAG_NONE - D3D12_COMMAND_RECORDER_FLAG_NONE = 0, + None = 0, } /// @@ -2815,13 +2794,12 @@ public enum ProtectedSessionStatus : int [Flags] public enum ProtectedResourceSessionSupportFlags : uint { - None = 0, /// /// D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0, + None = 0, /// /// D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED - D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 1, + Supported = 1, } /// @@ -2829,10 +2807,9 @@ public enum ProtectedResourceSessionSupportFlags : uint [Flags] public enum ProtectedResourceSessionFlags : uint { - None = 0, /// /// D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE - D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0, + None = 0, } /// @@ -2876,10 +2853,10 @@ public enum MetaCommandParameterFlags : uint None = 0, /// /// D3D12_META_COMMAND_PARAMETER_FLAG_INPUT - D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 1, + Input = 1, /// /// D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT - D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 2, + Output = 2, } /// @@ -3009,19 +2986,18 @@ public enum StateSubobjectType : int [Flags] public enum StateObjectFlags : uint { - None = 0, /// /// D3D12_STATE_OBJECT_FLAG_NONE - D3D12_STATE_OBJECT_FLAG_NONE = 0, + None = 0, /// /// D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS - D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 1, + AllowLocalDependenciesOnExternalDefinitions = 1, /// /// D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS - D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 2, + AllowExternalDependenciesOnLocalDefinitions = 2, /// /// D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS - D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 4, + AllowStateObjectAdditions = 4, } /// @@ -3029,10 +3005,9 @@ public enum StateObjectFlags : uint [Flags] public enum ExportFlags : uint { - None = 0, /// /// D3D12_EXPORT_FLAG_NONE - D3D12_EXPORT_FLAG_NONE = 0, + None = 0, } /// @@ -3052,16 +3027,15 @@ public enum HitGroupType : int [Flags] public enum RaytracingPipelineFlags : uint { - None = 0, /// /// D3D12_RAYTRACING_PIPELINE_FLAG_NONE - D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0, + None = 0, /// /// D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 256, + SkipTriangles = 256, /// /// D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 512, + SkipProceduralPrimitives = 512, } /// @@ -3081,16 +3055,15 @@ public enum StateObjectType : int [Flags] public enum RaytracingGeometryFlags : uint { - None = 0, /// /// D3D12_RAYTRACING_GEOMETRY_FLAG_NONE - D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0, + None = 0, /// /// D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE - D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1, + Opaque = 1, /// /// D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION - D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2, + NoDuplicateAnyhitInvocation = 2, } /// @@ -3110,22 +3083,21 @@ public enum RaytracingGeometryType : int [Flags] public enum RaytracingInstanceFlags : uint { - None = 0, /// /// D3D12_RAYTRACING_INSTANCE_FLAG_NONE - D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0, + None = 0, /// /// D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE - D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1, + TriangleCullDisable = 1, /// /// D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE - D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2, + TriangleFrontCounterclockwise = 2, /// /// D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE - D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4, + ForceOpaque = 4, /// /// D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE - D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8, + ForceNonOpaque = 8, } /// @@ -3133,28 +3105,27 @@ public enum RaytracingInstanceFlags : uint [Flags] public enum RaytracingAccelerationStructureBuildFlags : uint { - None = 0, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0, + None = 0, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 1, + AllowUpdate = 1, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 2, + AllowCompaction = 2, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 4, + PreferFastTrace = 4, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 8, + PreferFastBuild = 8, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 16, + MinimizeMemory = 16, /// /// D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 32, + PerformUpdate = 32, } /// @@ -3255,40 +3226,39 @@ public enum DriverMatchingIdentifierStatus : int [Flags] public enum RayFlags : uint { - None = 0, /// /// D3D12_RAY_FLAG_NONE - D3D12_RAY_FLAG_NONE = 0, + None = 0, /// /// D3D12_RAY_FLAG_FORCE_OPAQUE - D3D12_RAY_FLAG_FORCE_OPAQUE = 1, + ForceOpaque = 1, /// /// D3D12_RAY_FLAG_FORCE_NON_OPAQUE - D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 2, + ForceNonOpaque = 2, /// /// D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH - D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 4, + AcceptFirstHitAndEndSearch = 4, /// /// D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER - D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 8, + SkipClosestHitShader = 8, /// /// D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES - D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 16, + CullBackFacingTriangles = 16, /// /// D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES - D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 32, + CullFrontFacingTriangles = 32, /// /// D3D12_RAY_FLAG_CULL_OPAQUE - D3D12_RAY_FLAG_CULL_OPAQUE = 64, + CullOpaque = 64, /// /// D3D12_RAY_FLAG_CULL_NON_OPAQUE - D3D12_RAY_FLAG_CULL_NON_OPAQUE = 128, + CullNonOpaque = 128, /// /// D3D12_RAY_FLAG_SKIP_TRIANGLES - D3D12_RAY_FLAG_SKIP_TRIANGLES = 256, + SkipTriangles = 256, /// /// D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES - D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 512, + SkipProceduralPrimitives = 512, } /// @@ -3467,16 +3437,15 @@ public enum DredVersion : int [Flags] public enum DredFlags : uint { - None = 0, /// /// D3D12_DRED_FLAG_NONE - D3D12_DRED_FLAG_NONE = 0, + None = 0, /// /// D3D12_DRED_FLAG_FORCE_ENABLE - D3D12_DRED_FLAG_FORCE_ENABLE = 1, + ForceEnable = 1, /// /// D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS - D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2, + DisableAutobreadcrumbs = 2, } /// @@ -3692,19 +3661,18 @@ public enum RenderPassEndingAccessType : int [Flags] public enum RenderPassFlags : uint { - None = 0, /// /// D3D12_RENDER_PASS_FLAG_NONE - D3D12_RENDER_PASS_FLAG_NONE = 0, + None = 0, /// /// D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES - D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 1, + AllowUavWrites = 1, /// /// D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS - D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 2, + SuspendingPass = 2, /// /// D3D12_RENDER_PASS_FLAG_RESUMING_PASS - D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 4, + ResumingPass = 4, } /// @@ -3724,16 +3692,15 @@ public enum ShaderCacheMode : int [Flags] public enum ShaderCacheFlags : uint { - None = 0, /// /// D3D12_SHADER_CACHE_FLAG_NONE - D3D12_SHADER_CACHE_FLAG_NONE = 0, + None = 0, /// /// D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED - D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 1, + DriverVersioned = 1, /// /// D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR - D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 2, + UseWorkingDir = 2, } /// @@ -3744,16 +3711,16 @@ public enum ShaderCacheKindFlags : uint None = 0, /// /// D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 1, + ImplicitD3dCacheForDriver = 1, /// /// D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 2, + ImplicitD3dConversions = 2, /// /// D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED - D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 4, + ImplicitDriverManaged = 4, /// /// D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED - D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 8, + ApplicationManaged = 8, } /// @@ -3764,13 +3731,13 @@ public enum ShaderCacheControlFlags : uint None = 0, /// /// D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE - D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 1, + Disable = 1, /// /// D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE - D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 2, + Enable = 2, /// /// D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR - D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 4, + Clear = 4, } /// @@ -3868,19 +3835,18 @@ public enum GpuBasedValidationShaderPatchMode : int [Flags] public enum GpuBasedValidationPipelineStateCreateFlags : int { - None = 0, /// /// D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0, + None = 0, /// /// D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 1, + FrontLoadCreateTrackingOnlyShaders = 1, /// /// D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 2, + FrontLoadCreateUnguardedValidationShaders = 2, /// /// D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS - D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 4, + FrontLoadCreateGuardedValidationShaders = 4, /// /// D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK ValidMask = 7, @@ -6639,10 +6605,9 @@ public enum MessageId : int [Flags] public enum MessageCallbackFlags : int { - None = 0, /// /// D3D12_MESSAGE_CALLBACK_FLAG_NONE - D3D12_MESSAGE_CALLBACK_FLAG_NONE = 0, + None = 0, /// /// D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS = 1, @@ -6969,7 +6934,7 @@ public partial struct RenderTargetBlendDescription public LogicOp LogicOp; /// - public byte RenderTargetWriteMask; + public ColorWriteEnable RenderTargetWriteMask; } /// diff --git a/src/Vortice.Win32/UnsafeUtilities.cs b/src/Vortice.Win32/UnsafeUtilities.cs index 385b45f..ee320bd 100644 --- a/src/Vortice.Win32/UnsafeUtilities.cs +++ b/src/Vortice.Win32/UnsafeUtilities.cs @@ -2,23 +2,13 @@ // Copyright © Amer Koleci and Contributors. // Licensed under the MIT License (MIT). See LICENSE in the repository root for more information. -using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; -#if !NET6_0_OR_GREATER -using MemoryMarshal = Win32.MemoryMarshal; -#endif - namespace Win32; /// Provides a set of methods to supplement or replace and . public static unsafe class UnsafeUtilities { - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ref TTo As(ref TFrom source) - => ref Unsafe.As(ref source); - /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ReadOnlySpan As(this ReadOnlySpan span) @@ -29,14 +19,6 @@ public static unsafe class UnsafeUtilities return CreateReadOnlySpan(in AsReadOnly(in span.GetReference()), span.Length); } - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ref TTo AsRef(in TFrom source) - { - ref var mutable = ref Unsafe.AsRef(in source); - return ref As(ref mutable); - } - /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static T* AsPointer(ref T source) @@ -55,9 +37,6 @@ public static unsafe class UnsafeUtilities [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool IsNullRef(in T source) => Unsafe.IsNullRef(ref Unsafe.AsRef(in source)); - /// - public static Span CreateSpan(ref T reference, int length) => MemoryMarshal.CreateSpan(ref reference, length); - /// public static ReadOnlySpan CreateReadOnlySpan(in T reference, int length) => MemoryMarshal.CreateReadOnlySpan(ref Unsafe.AsRef(in reference), length); diff --git a/src/samples/01-ClearScreen/01-ClearScreen.csproj b/src/samples/01-ClearScreen/01-ClearScreen.csproj index 06b3174..9b0e04f 100644 --- a/src/samples/01-ClearScreen/01-ClearScreen.csproj +++ b/src/samples/01-ClearScreen/01-ClearScreen.csproj @@ -5,7 +5,6 @@ true false ClearScreen - x64