Files
Fishing2/Packages/com.waveharmonic.crest/Runtime/Scripts/Mask/MaskRenderer.Legacy.cs
2026-01-08 22:30:55 +08:00

64 lines
1.6 KiB
C#

// Crest Water System
// Copyright © 2024 Wave Harmonic. All rights reserved.
using UnityEngine;
using UnityEngine.Rendering;
namespace WaveHarmonic.Crest
{
sealed class MaskRendererBIRP : MaskRenderer
{
CommandBuffer _Commands;
public MaskRendererBIRP(WaterRenderer water) : base(water) { }
public override void Enable()
{
base.Enable();
Allocate();
}
public override void OnBeginCameraRendering(Camera camera)
{
if (!ShouldExecute(camera))
{
return;
}
_Commands ??= new()
{
name = UnderwaterRenderer.k_DrawMask,
};
_Water.UpdateMatrices(camera);
var descriptor = Rendering.BIRP.GetCameraTargetDescriptor(camera);
descriptor.useDynamicScale = camera.allowDynamicResolution;
Allocate();
ReAllocate(descriptor);
Execute(camera, _Commands);
// Handles both forward and deferred.
camera.AddCommandBuffer(CameraEvent.BeforeGBuffer, _Commands);
camera.AddCommandBuffer(CameraEvent.BeforeDepthTexture, _Commands);
}
public override void OnEndCameraRendering(Camera camera)
{
if (_Commands == null)
{
return;
}
camera.RemoveCommandBuffer(CameraEvent.BeforeGBuffer, _Commands);
camera.RemoveCommandBuffer(CameraEvent.BeforeDepthTexture, _Commands);
_Commands.Clear();
}
}
}