ps1 filter variables, crowds
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
extends ColorRect
|
||||
## Drives the fullscreen PS1/CRT post-process (ps1_filter.gdshader) from the DP
|
||||
## registry so every uniform is live-tunable in the console. `show_ps1` toggles the
|
||||
## whole overlay; the ps1_* floats feed the matching shader uniforms 1:1.
|
||||
|
||||
# DP param key → shader uniform name. Keys are registered in debug_params.gd with
|
||||
# ranges that mirror the shader's hint_range, so nothing here can go out of bounds.
|
||||
const _UNIFORMS := {
|
||||
"ps1_pixel_scale": "pixel_scale",
|
||||
"ps1_color_depth": "color_depth",
|
||||
"ps1_dither_strength": "dither_strength",
|
||||
"ps1_scanline_strength": "scanline_strength",
|
||||
"ps1_roll_speed": "roll_speed",
|
||||
"ps1_roll_strength": "roll_strength",
|
||||
}
|
||||
|
||||
@onready var _mat: ShaderMaterial = material as ShaderMaterial
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
DP.any_changed.connect(_on_param_changed)
|
||||
_apply_all()
|
||||
|
||||
|
||||
# reset_all() fires with key "__all__"; a single edit fires with its own key. Either
|
||||
# way just re-push everything — it's a handful of cheap uniform writes.
|
||||
func _on_param_changed(_key: String, _value: Variant) -> void:
|
||||
_apply_all()
|
||||
|
||||
|
||||
func _apply_all() -> void:
|
||||
visible = DP.b("show_ps1")
|
||||
if _mat == null:
|
||||
return
|
||||
for key: String in _UNIFORMS:
|
||||
_mat.set_shader_parameter(_UNIFORMS[key], DP.f(key))
|
||||
Reference in New Issue
Block a user