@@ -16,11 +16,17 @@ class WaterFxPass : ScriptableRenderPass
1616 private readonly ShaderTagId m_WaterFXShaderTag = new ShaderTagId ( "WaterFX" ) ;
1717 private readonly Color m_ClearColor = new Color ( 0.0f , 0.5f , 0.5f , 0.5f ) ; //r = foam mask, g = normal.x, b = normal.z, a = displacement
1818 private FilteringSettings m_FilteringSettings ;
19+ #if UNITY_2022_1_OR_NEWER
20+ private RTHandle m_WaterFX = RTHandles . Alloc ( BuiltinRenderTextureType . CameraTarget , "_WaterFXMap" ) ;
21+ #else
1922 private RenderTargetHandle m_WaterFX = RenderTargetHandle . CameraTarget ;
23+ #endif
2024
2125 public WaterFxPass ( )
2226 {
27+ #if ! UNITY_2022_1_OR_NEWER
2328 m_WaterFX . Init ( "_WaterFXMap" ) ;
29+ #endif
2430 // only wanting to render transparent objects
2531 m_FilteringSettings = new FilteringSettings ( RenderQueueRange . transparent ) ;
2632 }
@@ -36,8 +42,13 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera
3642 // default format TODO research usefulness of HDR format
3743 cameraTextureDescriptor . colorFormat = RenderTextureFormat . Default ;
3844 // get a temp RT for rendering into
45+ #if UNITY_2022_1_OR_NEWER
46+ cmd . GetTemporaryRT ( Shader . PropertyToID ( m_WaterFX . name ) , cameraTextureDescriptor , FilterMode . Bilinear ) ;
47+ ConfigureTarget ( m_WaterFX ) ;
48+ #else
3949 cmd . GetTemporaryRT ( m_WaterFX . id , cameraTextureDescriptor , FilterMode . Bilinear ) ;
4050 ConfigureTarget ( m_WaterFX . Identifier ( ) ) ;
51+ #endif
4152 // clear the screen with a specific color for the packed data
4253 ConfigureClear ( ClearFlag . Color , m_ClearColor ) ;
4354 }
@@ -55,7 +66,13 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData
5566 SortingCriteria . CommonTransparent ) ;
5667
5768 // draw all the renderers matching the rules we setup
69+ #if UNITY_2022_1_OR_NEWER
70+ var param = new RendererListParams ( renderingData . cullResults , drawSettings , m_FilteringSettings ) ;
71+ var rendererList = context . CreateRendererList ( ref param ) ;
72+ cmd . DrawRendererList ( rendererList ) ;
73+ #else
5874 context . DrawRenderers ( renderingData . cullResults , ref drawSettings , ref m_FilteringSettings ) ;
75+ #endif
5976 }
6077 context . ExecuteCommandBuffer ( cmd ) ;
6178 CommandBufferPool . Release ( cmd ) ;
@@ -64,7 +81,11 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData
6481 public override void OnCameraCleanup ( CommandBuffer cmd )
6582 {
6683 // since the texture is used within the single cameras use we need to cleanup the RT afterwards
84+ #if UNITY_2022_1_OR_NEWER
85+ cmd . ReleaseTemporaryRT ( Shader . PropertyToID ( m_WaterFX . name ) ) ;
86+ #else
6787 cmd . ReleaseTemporaryRT ( m_WaterFX . id ) ;
88+ #endif
6889 }
6990 }
7091
0 commit comments