Files
XCEngine/managed/XCEngine.ScriptCore/FullscreenPassDescriptor.cs

54 lines
1.6 KiB
C#
Raw Normal View History

namespace XCEngine
{
public enum FullscreenPassType
{
ColorScale = 0,
ShaderVector = 1
}
public struct FullscreenPassDescriptor
{
public FullscreenPassType type;
public string shaderPath;
public string passName;
public Vector4 vectorPayload;
public static FullscreenPassDescriptor CreateColorScale(
Vector4 colorScale)
{
FullscreenPassDescriptor descriptor = new FullscreenPassDescriptor();
descriptor.type = FullscreenPassType.ColorScale;
descriptor.shaderPath = string.Empty;
descriptor.passName = string.Empty;
descriptor.vectorPayload = colorScale;
return descriptor;
}
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;
}
public bool IsValid()
{
switch (type)
{
case FullscreenPassType.ColorScale:
return true;
case FullscreenPassType.ShaderVector:
return !string.IsNullOrEmpty(shaderPath);
default:
return false;
}
}
}
}