SHA256
Fix Audio Clip Loading
This commit is contained in:
3 files changed
+27
-27
No files matched your search
+25
-25
@@ -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;
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
|||||||
Reference in new issue
Block a user