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();
            }
        }
예제 #2
0
 public GameController(IVideoGenerator videoGenerator, IAPIClient apiRequest)
 {
     this.videoGenerator = videoGenerator ?? throw new ArgumentNullException(nameof(videoGenerator));
     this.apiRequest     = apiRequest ?? throw new ArgumentNullException(nameof(apiRequest));
 }