summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/shadertoy/convert_shadertoy.py36
1 files changed, 22 insertions, 14 deletions
diff --git a/tools/shadertoy/convert_shadertoy.py b/tools/shadertoy/convert_shadertoy.py
index 9df42bb..eb6ab63 100755
--- a/tools/shadertoy/convert_shadertoy.py
+++ b/tools/shadertoy/convert_shadertoy.py
@@ -329,6 +329,7 @@ def main():
print(" --post-process Generate post-process effect (operates on previous frame)")
print(" Default: scene effect (renders from scratch)")
print(" --shader-only Only regenerate .wgsl shader (skip .h/.cc files)")
+ print(" --dry-run Print next steps without writing any files")
print()
print("This will generate:")
print(" src/effects/<effect>_effect.h")
@@ -340,6 +341,7 @@ def main():
effect_name = sys.argv[2]
is_post_process = '--post-process' in sys.argv
shader_only = '--shader-only' in sys.argv
+ dry_run = '--dry-run' in sys.argv
# Ensure effect name is CamelCase
if '_' in effect_name:
@@ -368,23 +370,29 @@ def main():
print(f"Regenerating shader only: {effect_name}")
print(f" Shader: {shader_path}")
print()
- shader_path.write_text(generate_shader(effect_name, shadertoy_code, is_post_process))
- print(f"✓ Shader regenerated")
+ if not dry_run:
+ shader_path.write_text(generate_shader(effect_name, shadertoy_code, is_post_process))
+ print(f"✓ Shader regenerated")
+ else:
+ print(f"[dry-run] Would write shader")
return
- print(f"Generating effect: {effect_name}")
- print(f" Header: {header_path}")
- print(f" Impl: {impl_path}")
- print(f" Shader: {shader_path}")
- print()
-
- # Write files
- header_path.write_text(generate_header(effect_name, is_post_process))
- impl_path.write_text(generate_implementation(effect_name, is_post_process))
- shader_path.write_text(generate_shader(effect_name, shadertoy_code, is_post_process))
-
effect_type = "post-process" if is_post_process else "scene"
- print(f"✓ Files generated ({effect_type} effect)")
+ if dry_run:
+ print(f"[dry-run] Would generate effect: {effect_name} ({effect_type})")
+ print(f" Header: {header_path}")
+ print(f" Impl: {impl_path}")
+ print(f" Shader: {shader_path}")
+ else:
+ print(f"Generating effect: {effect_name}")
+ print(f" Header: {header_path}")
+ print(f" Impl: {impl_path}")
+ print(f" Shader: {shader_path}")
+ print()
+ header_path.write_text(generate_header(effect_name, is_post_process))
+ impl_path.write_text(generate_implementation(effect_name, is_post_process))
+ shader_path.write_text(generate_shader(effect_name, shadertoy_code, is_post_process))
+ print(f"✓ Files generated ({effect_type} effect)")
print()
print("Next steps (see doc/EFFECT_WORKFLOW.md for details):")
print()