Files
Vortice.Win32/src/Vortice.Win32.Graphics.Direct3D12/VersionedRootSignatureDescription.cs
2022-11-21 11:21:28 +01:00

84 lines
3.4 KiB
C#

// 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;
}
}