using UnityEngine.Rendering; namespace UnityEngine.PostProcessing { public abstract class PostProcessingComponentBase { public PostProcessingContext context; public virtual DepthTextureMode GetCameraFlags() { return DepthTextureMode.None; } public abstract bool active { get; } public virtual void OnEnable() {} public virtual void OnDisable() {} public abstract PostProcessingModel GetModel(); } public abstract class PostProcessingComponent : PostProcessingComponentBase where T : PostProcessingModel { public T model { get; internal set; } public virtual void Init(PostProcessingContext pcontext, T pmodel) { context = pcontext; model = pmodel; } public override PostProcessingModel GetModel() { return model; } } public abstract class PostProcessingComponentCommandBuffer : PostProcessingComponent where T : PostProcessingModel { public abstract CameraEvent GetCameraEvent(); public abstract string GetName(); public abstract void PopulateCommandBuffer(CommandBuffer cb); } public abstract class PostProcessingComponentRenderTexture : PostProcessingComponent where T : PostProcessingModel { public virtual void Prepare(Material material) {} } }