From 890fe1301bb276402530e76157bcaad8576f7f25 Mon Sep 17 00:00:00 2001 From: toydev Date: Thu, 16 Nov 2023 23:34:06 +0900 Subject: [PATCH] Fixed build error: Changed Application.onBeforeRender event to RenderPipelineManager.beginContextRendering for URP support. --- .../SteamVR/Scripts/SteamVR_Behaviour.cs | 9 ++++++--- .../SteamVR/Scripts/SteamVR_Render.cs | 13 ++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Behaviour.cs b/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Behaviour.cs index f2cac82..41f7cab 100644 --- a/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Behaviour.cs +++ b/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Behaviour.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; +using UnityEngine.Rendering; #if UNITY_2017_2_OR_NEWER using UnityEngine.XR; @@ -94,6 +95,7 @@ protected void Awake() { isPlaying = true; xrDevice_deviceLoaded = (Il2CppSystem.Action)XRDevice_deviceLoaded; + onBeforeRender = (Il2CppSystem.Action>)OnBeforeRender; if (initializeSteamVROnAwake && forcingInitialization == false) InitializeSteamVR(); @@ -176,15 +178,16 @@ private void OnDestroy() #if UNITY_2017_1_OR_NEWER protected void OnEnable() { - Application.onBeforeRender += OnBeforeRender; + RenderPipelineManager.beginContextRendering += onBeforeRender; SteamVR_Events.System(EVREventType.VREvent_Quit).Listen(OnQuit); } protected void OnDisable() { - Application.onBeforeRender -= OnBeforeRender; + RenderPipelineManager.beginContextRendering -= onBeforeRender; SteamVR_Events.System(EVREventType.VREvent_Quit).Remove(OnQuit); } - protected void OnBeforeRender() + private Il2CppSystem.Action> onBeforeRender; + protected void OnBeforeRender(ScriptableRenderContext context, Il2CppSystem.Collections.Generic.List cameras) { PreCull(); } diff --git a/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Render.cs b/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Render.cs index 78e5e8d..8b21a94 100644 --- a/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Render.cs +++ b/SteamVRLib_Valve.VR/SteamVR/Scripts/SteamVR_Render.cs @@ -6,6 +6,7 @@ using UnityEngine; using System.Collections; +using UnityEngine.Rendering; namespace Valve.VR { @@ -304,6 +305,11 @@ private void OnRequestScreenshot(VREvent_t vrEvent) private EVRScreenshotType[] screenshotTypes = new EVRScreenshotType[] { EVRScreenshotType.StereoPanorama }; + private void Awake() + { + onBeforeRender = (Il2CppSystem.Action>)OnBeforeRender; + } + private void OnEnable() { BepInEx.Unity.IL2CPP.Utils.MonoBehaviourExtensions.StartCoroutine(this, RenderLoop()); @@ -314,7 +320,7 @@ private void OnEnable() SteamVR_ExternalCamera_LegacyManager.SubscribeToNewPoses(); #if UNITY_2017_1_OR_NEWER - Application.onBeforeRender += OnBeforeRender; + RenderPipelineManager.beginContextRendering += onBeforeRender; #else Camera.onPreCull += OnCameraPreCull; #endif @@ -338,7 +344,7 @@ private void OnDisable() SteamVR_Events.System(EVREventType.VREvent_RequestScreenshot).Remove(OnRequestScreenshot); #if UNITY_2017_1_OR_NEWER - Application.onBeforeRender -= OnBeforeRender; + RenderPipelineManager.beginContextRendering -= onBeforeRender; #else Camera.onPreCull -= OnCameraPreCull; #endif @@ -359,7 +365,8 @@ public void UpdatePoses() } #if UNITY_2017_1_OR_NEWER - void OnBeforeRender() + private Il2CppSystem.Action> onBeforeRender; + protected void OnBeforeRender(ScriptableRenderContext context, Il2CppSystem.Collections.Generic.List cameras) { if (SteamVR.active == false) return;