Scylla Framework
  • API Reference
Search Results for

    Show / Hide Table of Contents
    • Scylla.Console.TextMode
      • IConsoleScreen
      • TextModeDebugConsoleDisplay
      • TicTacToeCommand
      • TicTacToeScreen
    • Scylla.TextMode
      • ANSIAttributeParser
      • ANSIColor
      • ANSISGRAttributes
      • AmbientEffectBase
      • BackgroundBlendMode
      • BoxStyle
      • BoxStyleCharacters
      • BoxStyleCharacters.BoxChars
      • CRTSettings
      • Cell
      • CellAttributes
      • CellAttributesExtensions
      • CellBuffer
      • CellBufferRenderer
      • CellGrid
      • CellMask
      • CellPosition
      • CellRange
      • CellRect
      • ColorCycleEffect
      • ColorCycleEffectPreset
      • CrossFadeEffect
      • CursorStyle
      • DecodeEffect
      • DecodeEffectPreset
      • DigitalRainEffect
      • DigitalRainEffectPreset
      • EffectsSettings
      • FadeEffect
      • FadeEffectPreset
      • FlickerEffect
      • FlickerEffectPreset
      • GlitchEffect
      • GlitchEffectPreset
      • GlyphAtlasCache
      • GridSettings
      • IAutoCompleter
      • IInputHistory
      • ITextEffect
      • ITextEffectContext
      • ITextModeGridProvider
      • ITextModePointerMapper
      • ITextModeRenderSource
      • ITextModeViewHost
      • IVTParserHandler
      • InputHistory
      • MaskTransitionEffect
      • MouseEncodingMode
      • MouseTrackingMode
      • PackedGlyphData
      • PulseEffect
      • PulseEffectPreset
      • PushEffect
      • PushEffectPreset
      • SDFSettings
      • ScrollbackAttributeRun
      • ScrollbackLine
      • ScyllaTextMode
      • ScyllaTextMode.Meta
      • ScyllaTextModeConfiguration
      • SlideInEffect
      • SlideInEffectPreset
      • StaticTuneInEffect
      • StaticTuneInEffectPreset
      • TerminalCLI
      • TerminalEmulator
      • TerminalGridRenderer
      • TerminalInputEncoder
      • TerminalMouseButton
      • TerminalScrollbackBuffer
      • TerminalSettings
      • TextAlignment
      • TextEffectBase
      • TextEffectCompletedEvent
      • TextEffectDirection
      • TextEffectExtensions
      • TextEffectMaskPattern
      • TextEffectPreset
      • TextEffectPushMode
      • TextEffectSequencer
      • TextEffectStartedEvent
      • TextEffectState
      • TextEffectTimeMode
      • TextEffects
      • TextModeCellBorder
      • TextModeColorDefaults
      • TextModeColorScheme
      • TextModeColorSet
      • TextModeConfigurationChangedEvent
      • TextModeConsole
      • TextModeConstants
      • TextModeEffectPlayer
      • TextModeGridCapture
      • TextModeLayoutUtil
      • TextModeMaterials
      • TextModeMouseReporter
      • TextModeMouseReportingEvent
      • TextModeSelectionChangedEvent
      • TextModeSelectionEndedEvent
      • TextModeSelectionManager
      • TextModeSelectionStartedEvent
      • TextModeTerminal
      • TextModeTerminalColorTheme
      • TextModeTerminalHost
      • TextModeTerminalSettings
      • TextModeTerminalStartMode
      • TextModeThemeBackground
      • TextModeThemeChangedEvent
      • TextModeThemeRemapper
      • TextModeThemes
      • TextModeView
      • TextWrapMode
      • ThemeSettings
      • TransitionEffectBase
      • TransitionEffectPreset
      • TwinkleEffect
      • TwinkleEffectPreset
      • TypewriterCharacterRevealedEvent
      • TypewriterEffect
      • TypewriterEffectPreset
      • UITextModeView
      • VTParser
      • WaveEffect
      • WaveEffectPreset
    • Scylla.TextMode.CRT
      • CRTBeam
      • CRTBeamClock
      • CRTBeamScanDirection
      • CRTBeamStatus
      • CRTCalibrationPattern
      • CRTCurvatureShape
      • CRTGeometry
      • CRTHDR
      • CRTHDRDisplay
      • CRTHDRTarget
      • CRTHorizontalKernel
      • CRTImageRegion
      • CRTMaskType
      • CRTQualityTier
      • CRTScaleMode
      • CRTSignalStandard
      • CRTSignalType
      • ITextModeCRTCameraEffect
      • ITextModeCRTHDRDisplaySource
      • TextModeCRTBeam
      • TextModeCRTCalibration
      • TextModeCRTCameraEffects
      • TextModeCRTConstants
      • TextModeCRTDriver
      • TextModeCRTHDR
      • TextModeCRTImageRenderer
      • TextModeCRTMonitor
      • TextModeCRTPreset
      • TextModeCRTPresetRegistry
      • TextModeCRTScreen
      • TextModeCRTSettings
      • TextModeCRTTube
    • Scylla.TextMode.Editor
      • CellGridPreviewWidget
      • ColorPaletteWidget
      • ITextModeCRTCameraSetupProvider
      • ScyllaTextModeConfigurationEditor
      • ScyllaTextModeDependencyProvider
      • ScyllaTextModeEditor
      • ScyllaTextModeMenuItems
      • ScyllaTextModeShaderProvider
      • TextModeCRTCameraSetup
      • TextModeCRTCameraStatus
      • TextModeCRTDriverEditor
      • TextModeCRTMonitorEditor
      • TextModeCRTPresetEditor
      • TextModeCRTPresetGenerator
      • TextModeColorAssetGenerator
      • TextModeColorPaletteDefaults
      • TextModeTerminalHostEditor
      • TextModeThemeField
      • TextModeViewEditor
      • TextModeViewEditorBase
      • UITextModeViewEditor
    • Scylla.TextMode.URP
      • CRTQualityTierParameter
      • TextModeCRTInjectionPoint
      • TextModeCRTPresetParameter
      • TextModeCRTRendererFeature
      • TextModeCRTVolume

    Class TextModeCRTRendererFeature

    Adds the TextMode CRT to a URP renderer as a camera effect. Add it to the renderer asset's Renderer Features, then switch it on per scene or area with a TextModeCRTVolume in a Volume profile, or per camera from code through TextModeCRTCameraEffects.

    Inheritance
    object
    Object
    ScriptableObject
    ScriptableRendererFeature
    TextModeCRTRendererFeature
    Implements
    IDisposable
    Inherited Members
    ScriptableRendererFeature.OnCameraPreCull(ScriptableRenderer, in CameraData)
    ScriptableRendererFeature.SetActive(bool)
    ScriptableRendererFeature.Dispose()
    ScriptableRendererFeature.isActive
    ScriptableObject.CreateInstance(string)
    ScriptableObject.CreateInstance(Type)
    ScriptableObject.CreateInstance<T>()
    Object.GetEntityId()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsByType(Type)
    Object.FindObjectsByType(Type, FindObjectsInactive)
    Object.DontDestroyOnLoad(Object)
    Object.FindAnyObjectByType<T>()
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsByType<T>()
    Object.FindObjectsByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType(Type)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: Scylla.TextMode.URP
    Assembly: ScyllaTextMode.URP.dll
    Syntax
    [DisallowMultipleRendererFeature("TextMode CRT")]
    public sealed class TextModeCRTRendererFeature : ScriptableRendererFeature, IDisposable
    Remarks

    Every camera keeps its own afterglow, so split screens and render-to-texture cameras do not mix their trails. A camera's state is released when it has not rendered for a few seconds.

    The feature draws for game cameras, and for the Scene view when ShowInSceneView is set. Preview cameras, reflection probes and XR cameras are skipped, and so are all cameras while the TextMode module is disabled. A camera is only given the pass when it has a CRT to draw, either from code or from an active TextModeCRTVolume, because the pass forces URP to render into an intermediate texture. In a camera stack, the Volume path draws only on the camera that resolves the final target, and a camera shown from code cannot be an overlay camera.

    Screen Space Overlay canvases are drawn after the camera and stay outside the CRT. Use a Screen Space Camera canvas for UI that should appear on the tube.

    Under HDR output the picture after post-processing is in absolute nits and the display's color gamut. The CRT converts it to linear light relative to paper white before it runs and back afterwards, which also lets HDR mask mode use the display's headroom.

    To set it up, follow these steps.

    1. Add the feature to every URP renderer asset that should show the CRT, either with the menu item Tools/Scylla/TextMode/Add CRT to URP Renderers or with Add Renderer Feature in the renderer asset's Inspector.
    2. Choose the injection point on the feature. After post-processing is the default.
    3. Switch the CRT on with a TextModeCRTVolume in a Volume, or per camera from code.

    To show one camera through the CRT from code, ask the registered camera effect. CanShow reports why a camera cannot draw, for example when URP is not the active pipeline or the camera's renderer has no CRT feature.

    var effect = TextModeCRTCameraEffects.Provider;
    if (effect != null && effect.CanShow(camera, out var reason))
    {
        effect.Show(camera, preset.Settings, CRTQualityTier.Medium, false, 0);
    }
    else
    {
        Debug.Log("The CRT cannot draw: " + reason);
    }

    Fields

    VERSION

    Version of the URP camera effect package.

    Declaration
    public const string VERSION = "1.1.0"
    Field Value
    Type Description
    string

    Properties

    InjectionPoint

    Gets or sets where in the frame the CRT is drawn. Setting it updates the render pass event of the pass right away, so it can be changed at runtime.

    Declaration
    public TextModeCRTInjectionPoint InjectionPoint { get; set; }
    Property Value
    Type Description
    TextModeCRTInjectionPoint

    The injection point. The default is AfterPostProcessing.

    ShowInSceneView

    Gets or sets whether the CRT is also drawn in the Scene view. When it is off, the Scene view camera is skipped.

    Declaration
    public bool ShowInSceneView { get; set; }
    Property Value
    Type Description
    bool

    true to draw the CRT in the Scene view. The default is false.

    Methods

    AddRenderPasses(ScriptableRenderer, ref RenderingData)

    Adds the pass to the camera's frame when the CRT draws for it, and releases the state of cameras that stopped rendering.

    Declaration
    public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
    Parameters
    Type Name Description
    ScriptableRenderer renderer

    The renderer of the camera.

    RenderingData renderingData

    The rendering data of the frame.

    Overrides
    UnityEngine.Rendering.Universal.ScriptableRendererFeature.AddRenderPasses(UnityEngine.Rendering.Universal.ScriptableRenderer, ref UnityEngine.Rendering.Universal.RenderingData)

    Create()

    Creates the render pass, applies the injection point and registers the feature with the URP camera effect so that CanShow can find it. Called by URP when the renderer is created or changed.

    Declaration
    public override void Create()
    Overrides
    UnityEngine.Rendering.Universal.ScriptableRendererFeature.Create()

    Dispose(bool)

    Unregisters the feature from the URP camera effect, releases every camera's CRT state and destroys the HDR conversion material. Called by URP when the renderer is disposed.

    Declaration
    protected override void Dispose(bool disposing)
    Parameters
    Type Name Description
    bool disposing

    Whether this is called from Dispose.

    Overrides
    ScriptableRendererFeature.Dispose(bool)

    Implements

    IDisposable
    In this article
    Back to top Scylla Framework - TextMode Module API Documentation