Files
2026-02-21 16:45:37 +08:00

104 lines
1.5 KiB
C#

using UltimateWater.Internal;
using UnityEngine;
namespace UltimateWater
{
public static class SetupShader
{
public const string KernelName = "Setup";
public const string MultiName = "MultiSetup";
public const string PrimaryName = "Previous";
public const string SecondaryName = "Current";
public const string PositionName = "Position";
public const string ForceName = "Force";
public const string ScaleName = "_Scale";
private static int _Kernel = -1;
private static int _Multi = -1;
public static int Kernel
{
get
{
if (_Kernel == -1)
{
_Kernel = Shader.FindKernel("Setup");
}
return _Kernel;
}
}
public static int Multi
{
get
{
if (_Multi == -1)
{
_Multi = Shader.FindKernel("MultiSetup");
}
return _Multi;
}
}
public static RenderTexture Primary
{
set
{
Shader.SetTexture(Kernel, "Previous", value);
}
}
public static RenderTexture Secondary
{
set
{
Shader.SetTexture(Kernel, "Current", value);
}
}
public static Vector2 Position
{
set
{
Shader.SetVector("Position", value);
}
}
public static float Force
{
set
{
Shader.SetFloat("Force", value);
}
}
public static int Scale
{
set
{
Shader.SetInt("_Scale", value);
}
}
public static ComputeShader Shader
{
get
{
return ShaderUtility.Instance.Get(ComputeShaderList.Setup);
}
}
public static void Dispatch()
{
Shader.Dispatch(Kernel, 1, 1, 1);
}
}
}