// ------------------------------------------------------------------------------
// <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_RT_FORMAT_ARRAY"]/*' />
/// <unmanaged>D3D12_RT_FORMAT_ARRAY</unmanaged>
public partial struct RtFormatArray
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RT_FORMAT_ARRAY::RTFormats"]/*' />
	public RTFormats__FixedBuffer RTFormats;

	public unsafe struct RTFormats__FixedBuffer
	{
		public Graphics.Dxgi.Common.Format e0;
		public Graphics.Dxgi.Common.Format e1;
		public Graphics.Dxgi.Common.Format e2;
		public Graphics.Dxgi.Common.Format e3;
		public Graphics.Dxgi.Common.Format e4;
		public Graphics.Dxgi.Common.Format e5;
		public Graphics.Dxgi.Common.Format e6;
		public Graphics.Dxgi.Common.Format e7;

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

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

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RT_FORMAT_ARRAY::NumRenderTargets"]/*' />
	public uint NumRenderTargets;
}
