Document Render Core And API

This commit is contained in:
copecone committed 2026-10-15 16:17:13 +09:00
1 parent 354c42fdd9
commit 8deb64fd4d
22 files changed
+1241 -27

No files matched your search

+22
View File
@@ -14,12 +14,30 @@ using Object = UnityEngine.Object;
namespace ADOFAIRenderer;
/// <summary>
/// MelonLoader entry point of the mod. Loads the settings and localization, points FFmpeg.AutoGen at the native
/// FFmpeg libraries, and creates the persistent manager objects (RenderManager, FirstUpdateHook, RendererUIManager).
/// </summary>
internal class RenderMod : MelonMod
{
/// <summary>
/// When true, the render button is not added to the level editor (scnEditorPatch checks it in scnEditor.Start).
/// Set by the user from the NVIDIA driver warning dialog (FirstUpdateHook). Main thread only.
/// </summary>
// ReSharper disable once MemberCanBePrivate.Global
public static bool IsFeatureDisabled = false;
/// <summary>
/// Expiration time of this build (UTC). After it, the render configuration window shows an "expired" note next to
/// the version text. It does not block rendering.
/// </summary>
public static DateTime ExpirationTime = new(2026, 11, 21, 0, 0, 0, DateTimeKind.Utc);
/// <summary>
/// Called once by MelonLoader after the mod assembly is loaded.
/// The native FFmpeg libraries are loaded from MelonLoader's UserLibs directory.
/// The three manager GameObjects are marked DontDestroyOnLoad so they survive scene changes.
/// </summary>
public override void OnInitializeMelon()
{
GlobalSettings.Load();
@@ -39,6 +57,10 @@ internal class RenderMod : MelonMod
ModAssets.Load();
}
/// <summary>
/// Called by MelonLoader when the game quits. Aborts an active render (encoders disposed, render thread joined,
/// unfinished output file deleted) through RenderManager.CleanUpActiveRender.
/// </summary>
public override void OnApplicationQuit()
{
if (RenderManager.Instance == null) return;