// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

namespace Win32.Graphics.Direct3D12;

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC"]/*' />
/// <unmanaged>D3D12_BLEND_DESC</unmanaged>
public partial struct BlendDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC::AlphaToCoverageEnable"]/*' />
	public Bool32 AlphaToCoverageEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC::IndependentBlendEnable"]/*' />
	public Bool32 IndependentBlendEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC::RenderTarget"]/*' />
	public RenderTarget__FixedBuffer RenderTarget;

	public unsafe struct RenderTarget__FixedBuffer
	{
		public RenderTargetBlendDescription e0;
		public RenderTargetBlendDescription e1;
		public RenderTargetBlendDescription e2;
		public RenderTargetBlendDescription e3;
		public RenderTargetBlendDescription e4;
		public RenderTargetBlendDescription e5;
		public RenderTargetBlendDescription e6;
		public RenderTargetBlendDescription e7;

		[UnscopedRef]
		public ref RenderTargetBlendDescription this[int index]
		{
			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			get
			{
				return ref AsSpan()[index];
			}
		}

		[UnscopedRef]
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		public Span<RenderTargetBlendDescription> AsSpan()
		{
			return MemoryMarshal.CreateSpan(ref e0, 8);
		}
	}
}
