Apply Better Handling of Render Cancel

This commit is contained in:
copecone committed 2026-05-27 15:50:09 +09:00
1 parent 42741c2cb2
commit 379c0360d7
2 files changed
+6 -12

No files matched your search

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