using XCEngine; using XCEngine.Rendering; namespace XCEngine.Rendering.Universal { public abstract class ScriptableRendererFeature { protected ScriptableRendererFeature() { } public bool isActive { get; set; } = true; public virtual void Create() { } public virtual void ConfigureCameraRenderRequest( CameraRenderRequestContext context) { } public virtual void AddRenderPasses( ScriptableRenderer renderer, RenderingData renderingData) { } protected bool HasDirectionalShadow( CameraRenderRequestContext context) { return context != null && InternalCalls .Rendering_CameraRenderRequestContext_GetHasDirectionalShadow( context.nativeHandle); } protected void ClearDirectionalShadow( CameraRenderRequestContext context) { if (context == null) { return; } InternalCalls .Rendering_CameraRenderRequestContext_ClearDirectionalShadow( context.nativeHandle); } } }