public void WriteVideo(IVideoGenerator source) { using var g = Graphics.FromImage(_frameImage); var more = true; var i = 0; while (more) { more = source.DrawFrame(i++, g); CopyFrame(_frameImage, _writerFrame); _writer.Write(_writerFrame); } if (source is IDisposable d) { d.Dispose(); } }
public GameController(IVideoGenerator videoGenerator, IAPIClient apiRequest) { this.videoGenerator = videoGenerator ?? throw new ArgumentNullException(nameof(videoGenerator)); this.apiRequest = apiRequest ?? throw new ArgumentNullException(nameof(apiRequest)); }