diff --git a/Component/RenderManager.cs b/Component/RenderManager.cs index a33c425..d3ad625 100644 --- a/Component/RenderManager.cs +++ b/Component/RenderManager.cs @@ -23,7 +23,7 @@ namespace ADOFAIRenderer.Component private static GameObject? _escapeHandlerObj; private static string? _currentOutPath; - private static bool _isRenderCancelled = false; + public static bool IsRenderCancelled = false; public static RenderSettings Configuration; public struct RenderSettings @@ -218,6 +218,7 @@ namespace ADOFAIRenderer.Component ImageQueue.Clear(); } PassCount = 0; + IsRenderCancelled = false; RenderMod.FrameCountForVideo = 0; RenderMod.RenderCheck = true; RenderMod.SkipCount = 0; @@ -292,7 +293,7 @@ namespace ADOFAIRenderer.Component continue; } - if (_isRenderCancelled) + if (IsRenderCancelled) { break; } @@ -325,7 +326,7 @@ namespace ADOFAIRenderer.Component public void CancelRender() { RenderMod.IsRendering = RenderMod.IsCapturing = false; - _isRenderCancelled = true; + IsRenderCancelled = true; StopFFmpeg(false); EndRender(); diff --git a/Util/FrameReader.cs b/Util/FrameReader.cs index 992e6bc..53d28bd 100644 --- a/Util/FrameReader.cs +++ b/Util/FrameReader.cs @@ -45,14 +45,7 @@ namespace ADOFAIRenderer.Util lock (_poolLock) { - if (_statePool.Count == 0) - { - state = new ReadbackRequestState(this); - } - else - { - state = _statePool.Pop(); - } + state = _statePool.Count == 0 ? new ReadbackRequestState(this) : _statePool.Pop(); } var bufferSize = texture.width * texture.height * 4; // RGBA = 4 channel @@ -70,7 +63,7 @@ namespace ADOFAIRenderer.Util { var frame = state.FrameIndex; - if (!RenderMod.IsCapturing) + if (RenderManager.IsRenderCancelled) { RecycleState(state); return;