2026-04-18 13:51:09 +08:00
|
|
|
namespace XCEngine
|
|
|
|
|
{
|
|
|
|
|
public enum FullscreenPassType
|
|
|
|
|
{
|
2026-04-18 16:08:01 +08:00
|
|
|
ColorScale = 0,
|
|
|
|
|
ShaderVector = 1
|
2026-04-18 13:51:09 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public struct FullscreenPassDescriptor
|
|
|
|
|
{
|
|
|
|
|
public FullscreenPassType type;
|
2026-04-18 16:08:01 +08:00
|
|
|
public string shaderPath;
|
|
|
|
|
public string passName;
|
2026-04-18 13:51:09 +08:00
|
|
|
public Vector4 vectorPayload;
|
|
|
|
|
|
|
|
|
|
public static FullscreenPassDescriptor CreateColorScale(
|
|
|
|
|
Vector4 colorScale)
|
|
|
|
|
{
|
|
|
|
|
FullscreenPassDescriptor descriptor = new FullscreenPassDescriptor();
|
|
|
|
|
descriptor.type = FullscreenPassType.ColorScale;
|
2026-04-18 16:08:01 +08:00
|
|
|
descriptor.shaderPath = string.Empty;
|
|
|
|
|
descriptor.passName = string.Empty;
|
2026-04-18 13:51:09 +08:00
|
|
|
descriptor.vectorPayload = colorScale;
|
|
|
|
|
return descriptor;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-18 16:08:01 +08:00
|
|
|
public static FullscreenPassDescriptor CreateShaderVector(
|
|
|
|
|
string shaderPath,
|
|
|
|
|
Vector4 vectorPayload,
|
|
|
|
|
string passName = null)
|
|
|
|
|
{
|
|
|
|
|
FullscreenPassDescriptor descriptor = new FullscreenPassDescriptor();
|
|
|
|
|
descriptor.type = FullscreenPassType.ShaderVector;
|
|
|
|
|
descriptor.shaderPath = shaderPath ?? string.Empty;
|
|
|
|
|
descriptor.passName = passName ?? string.Empty;
|
|
|
|
|
descriptor.vectorPayload = vectorPayload;
|
|
|
|
|
return descriptor;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-18 13:51:09 +08:00
|
|
|
public bool IsValid()
|
|
|
|
|
{
|
|
|
|
|
switch (type)
|
|
|
|
|
{
|
|
|
|
|
case FullscreenPassType.ColorScale:
|
|
|
|
|
return true;
|
2026-04-18 16:08:01 +08:00
|
|
|
case FullscreenPassType.ShaderVector:
|
|
|
|
|
return !string.IsNullOrEmpty(shaderPath);
|
2026-04-18 13:51:09 +08:00
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|