mirror of
https://github.com/amerkoleci/Vortice.Win32.git
synced 2026-01-14 16:16:04 +08:00
More D3D12 goodies.
This commit is contained in:
@@ -15,7 +15,7 @@
|
|||||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||||
<RestoreConfigFile>$(MSBuildThisFileDirectory)NuGet.config</RestoreConfigFile>
|
<RestoreConfigFile>$(MSBuildThisFileDirectory)NuGet.config</RestoreConfigFile>
|
||||||
|
|
||||||
<VersionPrefix>1.8.7</VersionPrefix>
|
<VersionPrefix>1.8.8</VersionPrefix>
|
||||||
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
|
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
|
||||||
|
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
|||||||
28
src/Vortice.Win32.Graphics.Direct3D12/DescriptorRange.cs
Normal file
28
src/Vortice.Win32.Graphics.Direct3D12/DescriptorRange.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using static Win32.Graphics.Direct3D12.Apis;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct DescriptorRange
|
||||||
|
{
|
||||||
|
public DescriptorRange(DescriptorRangeType rangeType, uint numDescriptors, uint baseShaderRegister, uint registerSpace = 0, uint offsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
|
||||||
|
{
|
||||||
|
Init(out this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init(DescriptorRangeType rangeType, uint numDescriptors, uint baseShaderRegister, uint registerSpace = 0, uint offsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
|
||||||
|
{
|
||||||
|
Init(out this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Init(out DescriptorRange range, DescriptorRangeType rangeType, uint numDescriptors, uint baseShaderRegister, uint registerSpace = 0, uint offsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
|
||||||
|
{
|
||||||
|
range.RangeType = rangeType;
|
||||||
|
range.NumDescriptors = numDescriptors;
|
||||||
|
range.BaseShaderRegister = baseShaderRegister;
|
||||||
|
range.RegisterSpace = registerSpace;
|
||||||
|
range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart;
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/Vortice.Win32.Graphics.Direct3D12/DescriptorRange1.cs
Normal file
29
src/Vortice.Win32.Graphics.Direct3D12/DescriptorRange1.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using static Win32.Graphics.Direct3D12.Apis;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct DescriptorRange1
|
||||||
|
{
|
||||||
|
public DescriptorRange1(DescriptorRangeType rangeType, uint numDescriptors, uint baseShaderRegister, uint registerSpace = 0, DescriptorRangeFlags flags = DescriptorRangeFlags.None, uint offsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
|
||||||
|
{
|
||||||
|
Init(out this, rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init(DescriptorRangeType rangeType, uint numDescriptors, uint baseShaderRegister, uint registerSpace = 0, DescriptorRangeFlags flags = DescriptorRangeFlags.None, uint offsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
|
||||||
|
{
|
||||||
|
Init(out this, rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Init(out DescriptorRange1 range, DescriptorRangeType rangeType, uint numDescriptors, uint baseShaderRegister, uint registerSpace = 0, DescriptorRangeFlags flags = DescriptorRangeFlags.None, uint offsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
|
||||||
|
{
|
||||||
|
range.RangeType = rangeType;
|
||||||
|
range.NumDescriptors = numDescriptors;
|
||||||
|
range.BaseShaderRegister = baseShaderRegister;
|
||||||
|
range.RegisterSpace = registerSpace;
|
||||||
|
range.Flags = flags;
|
||||||
|
range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart;
|
||||||
|
}
|
||||||
|
}
|
||||||
15
src/Vortice.Win32.Graphics.Direct3D12/RangeUInt64.cs
Normal file
15
src/Vortice.Win32.Graphics.Direct3D12/RangeUInt64.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using Win32.Graphics.Dxgi.Common;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public partial struct RangeUInt64
|
||||||
|
{
|
||||||
|
public RangeUInt64(ulong begin, ulong end)
|
||||||
|
{
|
||||||
|
Begin = begin;
|
||||||
|
End = end;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using Win32.Graphics.Dxgi.Common;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public partial struct RenderPassBeginningAccess : IEquatable<RenderPassBeginningAccess>
|
||||||
|
{
|
||||||
|
public static bool operator ==(in RenderPassBeginningAccess left, in RenderPassBeginningAccess right)
|
||||||
|
{
|
||||||
|
if (left.Type != right.Type)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.Type == RenderPassBeginningAccessType.Clear && !(left.Anonymous.Clear == right.Anonymous.Clear))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(in RenderPassBeginningAccess left, in RenderPassBeginningAccess right)
|
||||||
|
=> !(left == right);
|
||||||
|
|
||||||
|
public override bool Equals(object? obj) => (obj is RenderPassBeginningAccess other) && Equals(other);
|
||||||
|
|
||||||
|
public bool Equals(RenderPassBeginningAccess other) => this == other;
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
var hashCode = new HashCode();
|
||||||
|
{
|
||||||
|
hashCode.Add(Type);
|
||||||
|
|
||||||
|
if (Type == RenderPassBeginningAccessType.Clear)
|
||||||
|
{
|
||||||
|
hashCode.Add(Anonymous.Clear);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hashCode.ToHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using Win32.Graphics.Dxgi.Common;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public partial struct RenderPassBeginningAccessClearParameters : IEquatable<RenderPassBeginningAccessClearParameters>
|
||||||
|
{
|
||||||
|
public static bool operator ==(in RenderPassBeginningAccessClearParameters left, in RenderPassBeginningAccessClearParameters right)
|
||||||
|
{
|
||||||
|
return left.ClearValue == right.ClearValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(in RenderPassBeginningAccessClearParameters left, in RenderPassBeginningAccessClearParameters right)
|
||||||
|
=> !(left == right);
|
||||||
|
|
||||||
|
public override bool Equals(object? obj) => (obj is RenderPassBeginningAccessClearParameters other) && Equals(other);
|
||||||
|
|
||||||
|
public bool Equals(RenderPassBeginningAccessClearParameters other) => this == other;
|
||||||
|
|
||||||
|
public override int GetHashCode() => ClearValue.GetHashCode();
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using Win32.Graphics.Dxgi.Common;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public partial struct RenderPassDepthStencilDescription : IEquatable<RenderPassDepthStencilDescription>
|
||||||
|
{
|
||||||
|
public static bool operator ==(in RenderPassDepthStencilDescription left, in RenderPassDepthStencilDescription right)
|
||||||
|
{
|
||||||
|
if (left.cpuDescriptor.ptr != right.cpuDescriptor.ptr)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(left.DepthBeginningAccess == right.DepthBeginningAccess))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(left.StencilBeginningAccess == right.StencilBeginningAccess))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(left.DepthEndingAccess == right.DepthEndingAccess))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(left.StencilEndingAccess == right.StencilEndingAccess))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(in RenderPassDepthStencilDescription left, in RenderPassDepthStencilDescription right)
|
||||||
|
=> !(left == right);
|
||||||
|
|
||||||
|
public override bool Equals(object? obj) => (obj is RenderPassDepthStencilDescription other) && Equals(other);
|
||||||
|
|
||||||
|
public bool Equals(RenderPassDepthStencilDescription other) => this == other;
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return HashCode.Combine(cpuDescriptor, DepthBeginningAccess, StencilBeginningAccess, DepthEndingAccess, StencilEndingAccess);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using Win32.Graphics.Dxgi.Common;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public partial struct RenderPassEndingAccess : IEquatable<RenderPassEndingAccess>
|
||||||
|
{
|
||||||
|
public static bool operator ==(in RenderPassEndingAccess left, in RenderPassEndingAccess right)
|
||||||
|
{
|
||||||
|
if (left.Type != right.Type)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.Type == RenderPassEndingAccessType.Resolve && !(left.Anonymous.Resolve == right.Anonymous.Resolve))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(in RenderPassEndingAccess left, in RenderPassEndingAccess right)
|
||||||
|
=> !(left == right);
|
||||||
|
|
||||||
|
public override bool Equals(object? obj) => (obj is RenderPassEndingAccess other) && Equals(other);
|
||||||
|
|
||||||
|
public bool Equals(RenderPassEndingAccess other) => this == other;
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
var hashCode = new HashCode();
|
||||||
|
{
|
||||||
|
hashCode.Add(Type);
|
||||||
|
|
||||||
|
if (Type == RenderPassEndingAccessType.Resolve)
|
||||||
|
{
|
||||||
|
hashCode.Add(Anonymous.Resolve);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hashCode.ToHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct RenderPassEndingAccessResolveParameters : IEquatable<RenderPassEndingAccessResolveParameters>
|
||||||
|
{
|
||||||
|
public static bool operator ==(in RenderPassEndingAccessResolveParameters left, in RenderPassEndingAccessResolveParameters right)
|
||||||
|
{
|
||||||
|
if (left.pSrcResource != right.pSrcResource)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.pDstResource != right.pDstResource)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.SubresourceCount != right.SubresourceCount)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.Format != right.Format)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.ResolveMode != right.ResolveMode)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left.PreserveResolveSource != right.PreserveResolveSource)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(in RenderPassEndingAccessResolveParameters left, in RenderPassEndingAccessResolveParameters right)
|
||||||
|
=> !(left == right);
|
||||||
|
|
||||||
|
public override bool Equals(object? obj) => (obj is RenderPassEndingAccessResolveParameters other) && Equals(other);
|
||||||
|
|
||||||
|
public bool Equals(RenderPassEndingAccessResolveParameters other) => this == other;
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return HashCode.Combine(
|
||||||
|
(nuint)pSrcResource,
|
||||||
|
(nuint)pDstResource,
|
||||||
|
SubresourceCount,
|
||||||
|
(nuint)pSubresourceParameters,
|
||||||
|
Format,
|
||||||
|
ResolveMode,
|
||||||
|
PreserveResolveSource);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct RenderPassRenderTargetDescription : IEquatable<RenderPassRenderTargetDescription>
|
||||||
|
{
|
||||||
|
public static bool operator ==(in RenderPassRenderTargetDescription left, in RenderPassRenderTargetDescription right)
|
||||||
|
{
|
||||||
|
if (left.cpuDescriptor.ptr != right.cpuDescriptor.ptr)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(left.BeginningAccess == right.BeginningAccess))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(left.EndingAccess == right.EndingAccess))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(in RenderPassRenderTargetDescription left, in RenderPassRenderTargetDescription right)
|
||||||
|
=> !(left == right);
|
||||||
|
|
||||||
|
public override bool Equals(object? obj) => (obj is RenderPassRenderTargetDescription other) && Equals(other);
|
||||||
|
|
||||||
|
public bool Equals(RenderPassRenderTargetDescription other) => this == other;
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return HashCode.Combine(cpuDescriptor, BeginningAccess, EndingAccess);
|
||||||
|
}
|
||||||
|
}
|
||||||
43
src/Vortice.Win32.Graphics.Direct3D12/ResourceBarrier.cs
Normal file
43
src/Vortice.Win32.Graphics.Direct3D12/ResourceBarrier.cs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using static Win32.Graphics.Direct3D12.Apis;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct ResourceBarrier
|
||||||
|
{
|
||||||
|
public static ResourceBarrier InitTransition(
|
||||||
|
ID3D12Resource* pResource,
|
||||||
|
ResourceStates stateBefore,
|
||||||
|
ResourceStates stateAfter,
|
||||||
|
uint subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES,
|
||||||
|
ResourceBarrierFlags flags = ResourceBarrierFlags.None)
|
||||||
|
{
|
||||||
|
ResourceBarrier result = default;
|
||||||
|
result.Type = ResourceBarrierType.Transition;
|
||||||
|
result.Flags = flags;
|
||||||
|
result.Anonymous.Transition.pResource = pResource;
|
||||||
|
result.Anonymous.Transition.StateBefore = stateBefore;
|
||||||
|
result.Anonymous.Transition.StateAfter = stateAfter;
|
||||||
|
result.Anonymous.Transition.Subresource = subresource;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ResourceBarrier InitAliasing(ID3D12Resource* pResourceBefore, ID3D12Resource* pResourceAfter)
|
||||||
|
{
|
||||||
|
ResourceBarrier result = default;
|
||||||
|
result.Type = ResourceBarrierType.Aliasing;
|
||||||
|
result.Anonymous.Aliasing.pResourceBefore = pResourceBefore;
|
||||||
|
result.Anonymous.Aliasing.pResourceAfter = pResourceAfter;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ResourceBarrier InitUAV(ID3D12Resource* pResource)
|
||||||
|
{
|
||||||
|
ResourceBarrier result = default;
|
||||||
|
result.Type = ResourceBarrierType.Uav;
|
||||||
|
result.Anonymous.UAV.pResource = pResource;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct SubresourceRangeUInt64
|
||||||
|
{
|
||||||
|
public SubresourceRangeUInt64(uint subresource, RangeUInt64* range)
|
||||||
|
{
|
||||||
|
Subresource = subresource;
|
||||||
|
Range = *range;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubresourceRangeUInt64(uint subresource, ulong begin, ulong end)
|
||||||
|
{
|
||||||
|
Subresource = subresource;
|
||||||
|
Range.Begin = begin;
|
||||||
|
Range.End = end;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
// Copyright © Amer Koleci and Contributors.
|
||||||
|
// Licensed under the MIT License (MIT). See LICENSE in the repository root for more information.
|
||||||
|
|
||||||
|
using Win32.Graphics.Dxgi.Common;
|
||||||
|
using static Win32.Graphics.Direct3D12.Apis;
|
||||||
|
|
||||||
|
namespace Win32.Graphics.Direct3D12;
|
||||||
|
|
||||||
|
public unsafe partial struct VersionedRootSignatureDescription
|
||||||
|
{
|
||||||
|
public VersionedRootSignatureDescription(in RootSignatureDescription other)
|
||||||
|
{
|
||||||
|
Unsafe.SkipInit(out this);
|
||||||
|
|
||||||
|
Version = RootSignatureVersion.V1_0;
|
||||||
|
Anonymous.Desc_1_0 = other;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VersionedRootSignatureDescription(in RootSignatureDescription1 other)
|
||||||
|
{
|
||||||
|
Unsafe.SkipInit(out this);
|
||||||
|
|
||||||
|
Version = RootSignatureVersion.V1_1;
|
||||||
|
Anonymous.Desc_1_1 = other;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VersionedRootSignatureDescription(uint numParameters, RootParameter* _pParameters, uint numStaticSamplers = 0, StaticSamplerDescription* _pStaticSamplers = null, RootSignatureFlags flags = RootSignatureFlags.None)
|
||||||
|
{
|
||||||
|
Init_1_0(out this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public VersionedRootSignatureDescription(uint numParameters, RootParameter1* _pParameters, uint numStaticSamplers = 0, StaticSamplerDescription* _pStaticSamplers = null, RootSignatureFlags flags = RootSignatureFlags.None)
|
||||||
|
{
|
||||||
|
Init_1_1(out this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init_1_0(
|
||||||
|
uint numParameters, RootParameter* parameters,
|
||||||
|
uint numStaticSamplers = 0, StaticSamplerDescription* staticSamplers = null,
|
||||||
|
RootSignatureFlags flags = RootSignatureFlags.None)
|
||||||
|
{
|
||||||
|
Init_1_0(out this, numParameters, parameters, numStaticSamplers, staticSamplers, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Init_1_0(out VersionedRootSignatureDescription desc,
|
||||||
|
uint numParameters, RootParameter* parameters,
|
||||||
|
uint numStaticSamplers = 0, StaticSamplerDescription* staticSamplers = null,
|
||||||
|
RootSignatureFlags flags = RootSignatureFlags.None)
|
||||||
|
{
|
||||||
|
desc = default;
|
||||||
|
|
||||||
|
desc.Version = RootSignatureVersion.V1_0;
|
||||||
|
desc.Anonymous.Desc_1_0.NumParameters = numParameters;
|
||||||
|
desc.Anonymous.Desc_1_0.pParameters = parameters;
|
||||||
|
desc.Anonymous.Desc_1_0.NumStaticSamplers = numStaticSamplers;
|
||||||
|
desc.Anonymous.Desc_1_0.pStaticSamplers = staticSamplers;
|
||||||
|
desc.Anonymous.Desc_1_0.Flags = flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init_1_1(
|
||||||
|
uint numParameters, RootParameter1* parameters,
|
||||||
|
uint numStaticSamplers = 0, StaticSamplerDescription* staticSamplers = null,
|
||||||
|
RootSignatureFlags flags = RootSignatureFlags.None)
|
||||||
|
{
|
||||||
|
Init_1_1(out this, numParameters, parameters, numStaticSamplers, staticSamplers, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Init_1_1(
|
||||||
|
out VersionedRootSignatureDescription desc,
|
||||||
|
uint numParameters, RootParameter1* parameters,
|
||||||
|
uint numStaticSamplers = 0, StaticSamplerDescription* staticSamplers = null,
|
||||||
|
RootSignatureFlags flags = RootSignatureFlags.None)
|
||||||
|
{
|
||||||
|
desc = default;
|
||||||
|
|
||||||
|
desc.Version = RootSignatureVersion.V1_1;
|
||||||
|
desc.Anonymous.Desc_1_1.NumParameters = numParameters;
|
||||||
|
desc.Anonymous.Desc_1_1.pParameters = parameters;
|
||||||
|
desc.Anonymous.Desc_1_1.NumStaticSamplers = numStaticSamplers;
|
||||||
|
desc.Anonymous.Desc_1_1.pStaticSamplers = staticSamplers;
|
||||||
|
desc.Anonymous.Desc_1_1.Flags = flags;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -93,7 +93,7 @@ public static unsafe class Program
|
|||||||
d2d1Factory2.GetVoidAddressOf()).ThrowIfFailed();
|
d2d1Factory2.GetVoidAddressOf()).ThrowIfFailed();
|
||||||
|
|
||||||
using ComPtr<IDWriteFactory> dwriteFactory = default;
|
using ComPtr<IDWriteFactory> dwriteFactory = default;
|
||||||
DWriteCreateFactory(DWriteFactoryType.Shared, __uuidof<IDWriteFactory>(), dwriteFactory.GetIUnknownAddressOf()).ThrowIfFailed();
|
DWriteCreateFactory(DWriteFactoryType.Shared, __uuidof<IDWriteFactory>(), dwriteFactory.GetVoidAddressOf()).ThrowIfFailed();
|
||||||
|
|
||||||
using ComPtr<IDWriteTextFormat> textFormat =
|
using ComPtr<IDWriteTextFormat> textFormat =
|
||||||
dwriteFactory.Get()->CreateTextFormat(
|
dwriteFactory.Get()->CreateTextFormat(
|
||||||
|
|||||||
Reference in New Issue
Block a user