Make3.Renderer/Domain/RenderPart/RenderPartBase.cs
2025-04-27 14:19:57 +03:00

46 lines
1.2 KiB
C#

using System.Collections;
using Domain.Abstractions;
using Domain.Interfaces;
using Domain.Something;
namespace Domain;
public abstract class RenderPartBase : IFrameRender
{
protected readonly IEnumerable<ILayer> _layers;
protected uint _row;
protected uint _col;
public Guid RenderId { get; private set; }
protected RenderPartBase(IEnumerable<ILayer> layers, uint row, uint col, Guid renderId)
{
_layers = layers;
_row = row;
_col = col;
RenderId = renderId;
}
public abstract Task<IEnumerable<ExpIniFileGenerator.FrameExpInfo>> Execute(CancellationToken cancellationToken);
public abstract long EstimateMemoryUsage();
protected abstract Task RenderImage();
protected virtual Task<ExpIniFileGenerator.FrameExpInfo> CreateFrameInfo()
{
throw new NotImplementedException();
return Task.FromResult(new ExpIniFileGenerator.FrameExpInfo());
}
protected virtual uint SetFrameNumber(uint row, uint column, uint columnsInRow)
{
return column + (row * columnsInRow);
}
protected Task SaveFrame()
{
return Task.CompletedTask;
}
}