class
Opal::Shader::Pipeline
- Opal::Shader::Pipeline
- Reference
- Object
Overview
Multi-pass shader compositing pipeline that applies chained shader passes sequentially across an entire buffer or targeted sub-regions.
Defined in:
opal/shader/pipeline.crConstructors
Instance Method Summary
- #add(pass : Pass) : self
-
#apply(buffer : UI::Buffer, time : Float64 = 0.0, frame : UInt64 = 0_u64) : UI::Buffer
Applies all pipeline passes sequentially to the target buffer using ping-pong buffering.
- #audio_visualizer(region : Rect | Nil = nil, speed : Float64 = 1.0, bar_count : Int32 = 16, low_color : Color | Symbol | String = :green, mid_color : Color | Symbol | String = :yellow, high_color : Color | Symbol | String = :bright_red, peak_color : Color | Symbol | String = :bright_white) : self
- #crt(region : Rect | Nil = nil, intensity : Float64 = 0.35, scanline_gap : Int32 = 2, phosphor_tint : Color | Symbol | String = Color.none, flicker : Bool = true) : self
- #custom(region : Rect | Nil = nil, &block : ShaderContext -> Nil) : self
- #fire(region : Rect | Nil = nil, speed : Float64 = 1.0) : self
- #fractal_landscape(region : Rect | Nil = nil, speed : Float64 = 1.0, sky_color : Color | Symbol | String = :dark_gray, mountain_color : Color | Symbol | String = :blue, ridge_color : Color | Symbol | String = :magenta, foreground_color : Color | Symbol | String = :bright_cyan) : self
- #glitch(region : Rect | Nil = nil, intensity : Float64 = 0.2, slice_height : Int32 = 3, chromatic_shift : Bool = true) : self
- #matrix(region : Rect | Nil = nil, speed : Float64 = 1.0, density : Float64 = 0.2, lead_color : Color | Symbol | String = :bright_white, trail_color : Color | Symbol | String = :green, preserve_text : Bool = true) : self
- #passes : Array(Pass)
- #plasma(region : Rect | Nil = nil, scale : Float64 = 0.2, speed : Float64 = 1.5, shade_bg : Bool = false) : self
- #raymarch_sphere(region : Rect | Nil = nil, speed : Float64 = 1.0, radius : Float64 = 0.75, sphere_color : Color | Symbol | String = :bright_cyan, light_color : Color | Symbol | String = :white, preserve_text : Bool = false) : self
- #ripple(region : Rect | Nil = nil, speed : Float64 = 2.0, frequency : Float64 = 0.4, amplitude : Float64 = 1.5) : self
- #starfield(region : Rect | Nil = nil, speed : Float64 = 1.0, count : Int32 = 80, preserve_text : Bool = true) : self
- #tunnel(region : Rect | Nil = nil, speed : Float64 = 1.2, rotation_speed : Float64 = 0.5) : self
- #vignette(region : Rect | Nil = nil, radius : Float64 = 0.8, falloff : Float64 = 0.5) : self
- #voronoi(region : Rect | Nil = nil, speed : Float64 = 0.8, scale : Float64 = 0.15, border_color : Color | Symbol | String = :bright_cyan, inner_color : Color | Symbol | String = :blue) : self
Constructor Detail
Instance Method Detail
Applies all pipeline passes sequentially to the target buffer using ping-pong buffering.
def audio_visualizer(region : Rect | Nil = nil, speed : Float64 = 1.0, bar_count : Int32 = 16, low_color : Color | Symbol | String = :green, mid_color : Color | Symbol | String = :yellow, high_color : Color | Symbol | String = :bright_red, peak_color : Color | Symbol | String = :bright_white) : self
#
def crt(region : Rect | Nil = nil, intensity : Float64 = 0.35, scanline_gap : Int32 = 2, phosphor_tint : Color | Symbol | String = Color.none, flicker : Bool = true) : self
#
def fractal_landscape(region : Rect | Nil = nil, speed : Float64 = 1.0, sky_color : Color | Symbol | String = :dark_gray, mountain_color : Color | Symbol | String = :blue, ridge_color : Color | Symbol | String = :magenta, foreground_color : Color | Symbol | String = :bright_cyan) : self
#
def glitch(region : Rect | Nil = nil, intensity : Float64 = 0.2, slice_height : Int32 = 3, chromatic_shift : Bool = true) : self
#
def matrix(region : Rect | Nil = nil, speed : Float64 = 1.0, density : Float64 = 0.2, lead_color : Color | Symbol | String = :bright_white, trail_color : Color | Symbol | String = :green, preserve_text : Bool = true) : self
#
def plasma(region : Rect | Nil = nil, scale : Float64 = 0.2, speed : Float64 = 1.5, shade_bg : Bool = false) : self
#
def raymarch_sphere(region : Rect | Nil = nil, speed : Float64 = 1.0, radius : Float64 = 0.75, sphere_color : Color | Symbol | String = :bright_cyan, light_color : Color | Symbol | String = :white, preserve_text : Bool = false) : self
#
def ripple(region : Rect | Nil = nil, speed : Float64 = 2.0, frequency : Float64 = 0.4, amplitude : Float64 = 1.5) : self
#
def starfield(region : Rect | Nil = nil, speed : Float64 = 1.0, count : Int32 = 80, preserve_text : Bool = true) : self
#
def tunnel(region : Rect | Nil = nil, speed : Float64 = 1.2, rotation_speed : Float64 = 0.5) : self
#