diff options
Diffstat (limited to 'tools/shadertoy')
| -rwxr-xr-x | tools/shadertoy/convert_shadertoy.py | 36 |
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() |
