Make3.Renderer/Domain/RenderPart/RenderPartBase.cs
2025-04-28 21:30:59 +03:00

43 lines
1.1 KiB
C#

using Domain.Interfaces;
namespace Domain.RenderPart;
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;
}
}