Files
ADOFAIRenderer/Core/PostRenderHook.cs
T

34 lines
897 B
C#

using System.Collections;
using System.Reflection;
using HarmonyLib;
using UnityEngine;
namespace ADOFAIRenderer.Core;
[DefaultExecutionOrder(int.MaxValue)]
internal class PostRenderHook : MonoBehaviour
{
private FieldInfo? _camQuadMeshField;
private void Awake()
{
_camQuadMeshField = AccessTools.Field(typeof(scrCamera), "camQuadMesh");
}
private void LateUpdate()
{
if (RenderManager.Instance)
RenderManager.Instance.OnLastUpdate();
StartCoroutine(PostFrameCoroutine());
}
private IEnumerator PostFrameCoroutine()
{
yield return new WaitForEndOfFrame();
var val = (MeshRenderer)_camQuadMeshField!.GetValue(scrCamera.instance);
if (RenderManager.Instance)
RenderManager.Instance.OnPostFrame(val.sharedMaterial.mainTexture as RenderTexture);
}
}