Cores/Nds/Compute/ComputeRenderer3D.cs
namespace Emulotl.Nds;

public sealed partial class ComputeRenderer3D
{
	private const int MaxYSpanSetups = 6144 * 2;

	private readonly GPU3D _gpu;
	private readonly GPU _gpu2d;

	private readonly List<SetupIndices> _ySpanIndices = [];
	private readonly SpanSetupY[] _ySpanSetups = new SpanSetupY[MaxYSpanSetups];
	private readonly RenderPolygonGpu[] _renderPolygons = new RenderPolygonGpu[2048];

	private int _scaleFactor = 1;
	private bool _hiresCoordinates = true;

	public ComputeRenderer3D( GPU3D gpu, GPU gpu2d )
	{
		_gpu = gpu;
		_gpu2d = gpu2d;
	}

	public void SetRenderSettings( int scale, bool hiresCoordinates = true )
	{
		_scaleFactor = Math.Max( 1, scale );
		_hiresCoordinates = hiresCoordinates;
	}
}