Fix Audio Clip Loading

This commit is contained in:
copecone committed 2026-06-15 02:23:35 +09:00
1 parent 675661878d
commit 7df15eae08
3 files changed
+27 -27

No files matched your search

+25 -25
View File
@@ -21,8 +21,8 @@ namespace ADOFAIRenderer.Core
{ {
// Singleton Accessors // Singleton Accessors
public static RenderManager Instance { get; private set; } = null!; public static RenderManager Instance { get; private set; } = null!;
public static bool IsActive => Instance && Instance.isRendering; public static bool IsActive => Instance && Instance.IsRendering;
public static bool IsCapturingActive => Instance && Instance.isCapturing; public static bool IsCapturingActive => Instance && Instance.IsCapturing;
public const int MaxQueuedFrames = 64; public const int MaxQueuedFrames = 64;
public const int MaxRenderRetry = 64; public const int MaxRenderRetry = 64;
@@ -32,13 +32,13 @@ namespace ADOFAIRenderer.Core
public long frameCount; public long frameCount;
public bool skipPressToStart; public bool skipPressToStart;
public string levelPath = ""; public string levelPath = "";
public bool isRenderCancelled { get; private set; } public bool IsRenderCancelled { get; private set; }
public RenderConfig Configuration = null!; public RenderConfig Configuration = null!;
// Render Sessions State (OOP Instance Fields) // Render Sessions State (OOP Instance Fields)
public bool overrideLoading { get; private set; } public bool OverrideLoading { get; private set; }
public bool isRendering { get; private set; } private bool IsRendering { get; set; }
public bool isCapturing { get; private set; } private bool IsCapturing { get; set; }
public double timeBase; public double timeBase;
public double unscaledTimeBase; public double unscaledTimeBase;
public double dspTimeBase; public double dspTimeBase;
@@ -96,7 +96,7 @@ namespace ADOFAIRenderer.Core
/// </summary> /// </summary>
public void StartLoadingOverride() public void StartLoadingOverride()
{ {
overrideLoading = true; OverrideLoading = true;
} }
/// <summary> /// <summary>
@@ -104,7 +104,7 @@ namespace ADOFAIRenderer.Core
/// </summary> /// </summary>
public void StartRendering() public void StartRendering()
{ {
isRendering = true; IsRendering = true;
} }
/// <summary> /// <summary>
@@ -112,8 +112,8 @@ namespace ADOFAIRenderer.Core
/// </summary> /// </summary>
public void StartCapturing() public void StartCapturing()
{ {
isCapturing = true; IsCapturing = true;
isRenderCancelled = false; IsRenderCancelled = false;
} }
/// <summary> /// <summary>
@@ -121,10 +121,10 @@ namespace ADOFAIRenderer.Core
/// </summary> /// </summary>
public void ResetRenderState(bool success) public void ResetRenderState(bool success)
{ {
isRendering = false; IsRendering = false;
isCapturing = false; IsCapturing = false;
overrideLoading = false; OverrideLoading = false;
isRenderCancelled = !success; IsRenderCancelled = !success;
} }
public void CleanUpActiveRender() public void CleanUpActiveRender()
@@ -212,7 +212,7 @@ namespace ADOFAIRenderer.Core
scrController.instance!.StartCoroutine(SetupPlay()); scrController.instance!.StartCoroutine(SetupPlay());
} }
if (!isRendering) return; if (!IsRendering) return;
if (!scrController.instance || scrController.instance.state == States.Fail || scrController.instance.state == States.Fail2) if (!scrController.instance || scrController.instance.state == States.Fail || scrController.instance.state == States.Fail2)
{ {
ResetRenderState(success: false); ResetRenderState(success: false);
@@ -236,10 +236,10 @@ namespace ADOFAIRenderer.Core
public void OnPreRenderUpdate() public void OnPreRenderUpdate()
{ {
if (!isRendering) return; if (!IsRendering) return;
// [렉으로 인한 프레임 렌더링 스킵 시 재시도 로직 (원본 모드 이식)] // [렉으로 인한 프레임 렌더링 스킵 시 재시도 로직 (원본 모드 이식)]
if (renderCheck && isCapturing) if (renderCheck && IsCapturing)
{ {
if (skipCount < MaxRenderRetry) if (skipCount < MaxRenderRetry)
{ {
@@ -289,14 +289,14 @@ namespace ADOFAIRenderer.Core
// ReSharper disable once Unity.IncorrectMethodSignature // ReSharper disable once Unity.IncorrectMethodSignature
public void OnPostRender(RenderTexture? texture) public void OnPostRender(RenderTexture? texture)
{ {
if (!isCapturing || !texture) return; if (!IsCapturing || !texture) return;
renderCheck = false; // 이번 프레임 정상 렌더링 완료 renderCheck = false; // 이번 프레임 정상 렌더링 완료
// [Backpressure Throttling (2번 작업)] // [Backpressure Throttling (2번 작업)]
isThrottling = false; isThrottling = false;
while (isCapturing && isRendering) while (IsCapturing && IsRendering)
{ {
int count; int count;
lock (ImageQueue) lock (ImageQueue)
@@ -420,7 +420,7 @@ namespace ADOFAIRenderer.Core
ImageQueue.Clear(); ImageQueue.Clear();
} }
passCount = 0; passCount = 0;
isRenderCancelled = false; IsRenderCancelled = false;
frameCountForVideo = 0; frameCountForVideo = 0;
lastVideoFrameIndex = -1; lastVideoFrameIndex = -1;
lastRequestedVideoFrameIndex = -1; lastRequestedVideoFrameIndex = -1;
@@ -486,7 +486,7 @@ namespace ADOFAIRenderer.Core
{ {
var firstKey = ImageQueue.Keys[0]; var firstKey = ImageQueue.Keys[0];
if (firstKey > passCount && !isCapturing) if (firstKey > passCount && !IsCapturing)
{ {
passCount = firstKey; passCount = firstKey;
} }
@@ -523,7 +523,7 @@ namespace ADOFAIRenderer.Core
continue; continue;
} }
if (isRenderCancelled) break; if (IsRenderCancelled) break;
if (endRequested) if (endRequested)
{ {
@@ -533,7 +533,7 @@ namespace ADOFAIRenderer.Core
FrameAvailableEvent.WaitOne(50); FrameAvailableEvent.WaitOne(50);
} }
if (isRenderCancelled) if (IsRenderCancelled)
{ {
videoFFmpeg.Dispose(); videoFFmpeg.Dispose();
} }
@@ -549,7 +549,7 @@ namespace ADOFAIRenderer.Core
} }
_activeVideoFFmpeg = null; _activeVideoFFmpeg = null;
endSuccessful = !isRenderCancelled; endSuccessful = !IsRenderCancelled;
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -586,7 +586,7 @@ namespace ADOFAIRenderer.Core
endRequested = true; endRequested = true;
if (!success) if (!success)
{ {
isRenderCancelled = true; IsRenderCancelled = true;
} }
FrameAvailableEvent.Set(); FrameAvailableEvent.Set();
skipPressToStart = false; skipPressToStart = false;
+1 -1
View File
@@ -159,7 +159,7 @@ namespace ADOFAIRenderer.Patch.Engine
[SuppressMessage("ReSharper", "InconsistentNaming")] [SuppressMessage("ReSharper", "InconsistentNaming")]
public static void Prefix(ref bool stream) public static void Prefix(ref bool stream)
{ {
if (RenderManager.Instance && RenderManager.Instance.overrideLoading && RenderManager.Instance.Configuration.ProcessAudio) if (RenderManager.Instance && RenderManager.Instance.OverrideLoading && RenderManager.Instance.Configuration.ProcessAudio)
stream = false; stream = false;
} }
} }
+1 -1
View File
@@ -87,7 +87,7 @@ namespace ADOFAIRenderer.Util
} }
} }
if (RenderManager.Instance && RenderManager.Instance.isRenderCancelled) if (RenderManager.Instance && RenderManager.Instance.IsRenderCancelled)
{ {
RecycleState(state); RecycleState(state);
return; return;