SHA256
Add AMD GPU Support
This commit is contained in:
3 files changed
+64
-22
No files matched your search
+50
-15
@@ -32,12 +32,13 @@ namespace ADOFAIRenderer.Core
|
||||
public long frameCount;
|
||||
public bool skipPressToStart;
|
||||
public string levelPath = "";
|
||||
public bool isRenderCancelled;
|
||||
public bool isRenderCancelled { get; private set; }
|
||||
public RenderConfig Configuration = null!;
|
||||
|
||||
// Render Sessions State (OOP Instance Fields)
|
||||
public bool isRendering;
|
||||
public bool isCapturing;
|
||||
public bool overrideLoading { get; private set; }
|
||||
public bool isRendering { get; private set; }
|
||||
public bool isCapturing { get; private set; }
|
||||
public double timeBase;
|
||||
public double unscaledTimeBase;
|
||||
public double dspTimeBase;
|
||||
@@ -90,10 +91,46 @@ namespace ADOFAIRenderer.Core
|
||||
CleanUpActiveRender();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets overrideLoading to true when starting to load the render scene.
|
||||
/// </summary>
|
||||
public void StartLoadingOverride()
|
||||
{
|
||||
overrideLoading = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets isRendering to true when starting the rendering setup.
|
||||
/// </summary>
|
||||
public void StartRendering()
|
||||
{
|
||||
isRendering = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets isCapturing to true and resets the cancellation flag when starting the actual frame capture.
|
||||
/// </summary>
|
||||
public void StartCapturing()
|
||||
{
|
||||
isCapturing = true;
|
||||
isRenderCancelled = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets all rendering-related states.
|
||||
/// </summary>
|
||||
public void ResetRenderState(bool success)
|
||||
{
|
||||
isRendering = false;
|
||||
isCapturing = false;
|
||||
overrideLoading = false;
|
||||
isRenderCancelled = !success;
|
||||
}
|
||||
|
||||
public void CleanUpActiveRender()
|
||||
{
|
||||
isRendering = isCapturing = false;
|
||||
isRenderCancelled = true;
|
||||
ResetRenderState(success: false);
|
||||
|
||||
AudioSpectrumGenerator.Clear();
|
||||
|
||||
if (_activeVideoFFmpeg != null)
|
||||
@@ -160,7 +197,7 @@ namespace ADOFAIRenderer.Core
|
||||
dspTimeBase = AudioSettings.dspTime;
|
||||
frameCountBase = Time.frameCount;
|
||||
|
||||
isRendering = true;
|
||||
StartRendering();
|
||||
countdown = 3;
|
||||
wonFrame = -1;
|
||||
|
||||
@@ -178,7 +215,7 @@ namespace ADOFAIRenderer.Core
|
||||
if (!isRendering) return;
|
||||
if (!scrController.instance || scrController.instance.state == States.Fail || scrController.instance.state == States.Fail2)
|
||||
{
|
||||
isRendering = isCapturing = false;
|
||||
ResetRenderState(success: false);
|
||||
StopFFmpeg(false);
|
||||
EndRender();
|
||||
}
|
||||
@@ -192,7 +229,7 @@ namespace ADOFAIRenderer.Core
|
||||
var extraFrames = (long)Math.Ceiling(Configuration.DelayAfterLevelEnd * Configuration.RenderFPS);
|
||||
|
||||
if (frameCount - wonFrame < extraFrames) return;
|
||||
isRendering = isCapturing = false;
|
||||
ResetRenderState(success: true);
|
||||
StopFFmpeg(true);
|
||||
}
|
||||
}
|
||||
@@ -307,14 +344,13 @@ namespace ADOFAIRenderer.Core
|
||||
return;
|
||||
}
|
||||
|
||||
if (Instance != null)
|
||||
Instance.levelPath = ADOBase.levelPath;
|
||||
|
||||
if (Instance) Instance.levelPath = ADOBase.levelPath;
|
||||
scnEditor.instance.CheckUnsavedChanges(() =>
|
||||
{
|
||||
var quitDelegate =
|
||||
(Func<bool>)Delegate.CreateDelegate(typeof(Func<bool>), scnEditor.instance, targetMethod);
|
||||
|
||||
|
||||
if (Instance) Instance.StartLoadingOverride();
|
||||
Application.wantsToQuit -= quitDelegate;
|
||||
ADOBase.loader.LoadSceneWithTransition(WipeDirection.StartsFromRight, "Assets/Scenes/RenderSettingsScene.unity");
|
||||
});
|
||||
@@ -356,7 +392,7 @@ namespace ADOFAIRenderer.Core
|
||||
_frameReader = new FrameReader();
|
||||
StartFFmpegThread();
|
||||
|
||||
isCapturing = true;
|
||||
StartCapturing();
|
||||
scrController.instance.paused = scrController.instance.audioPaused = false;
|
||||
scrController.instance.levelWasSkipped = true;
|
||||
|
||||
@@ -539,8 +575,7 @@ namespace ADOFAIRenderer.Core
|
||||
|
||||
public void CancelRender()
|
||||
{
|
||||
isRendering = isCapturing = false;
|
||||
isRenderCancelled = true;
|
||||
ResetRenderState(success: false);
|
||||
|
||||
StopFFmpeg(false);
|
||||
EndRender();
|
||||
|
||||
Reference in new issue
Block a user