Files
manual_slop/conductor/tracks/custom_shaders_20260309/plan.md

3.2 KiB

Implementation Plan: Custom Shader and Window Frame Support

Phase 1: Investigation & Architecture Prototyping

  • Task: Investigate imgui-bundle and Dear PyGui capabilities for injecting raw custom shaders (OpenGL/D3D11) vs extending ImDrawList batching.
  • Task: Investigate Python ecosystem capabilities for overloading OS window frames (e.g., pywin32 for DWM vs ImGui borderless mode).
  • Task: Draft architectural design document (docs/guide_shaders_and_window.md) detailing the chosen shader injection method and window frame overloading strategy.
  • Task: Conductor - User Manual Verification 'Phase 1: Investigation & Architecture Prototyping' (Protocol in workflow.md)

Phase 2: Custom OS Window Frame Implementation

  • Task: Write Tests: Verify the application window launches with the custom frame/borderless mode active.
  • Task: Implement: Integrate custom window framing logic into the main GUI loop (src/gui_2.py / Dear PyGui setup).
  • Task: Write Tests: Verify standard window controls (minimize, maximize, close, drag) function correctly with the new frame.
  • Task: Implement: Add custom title bar and window controls matching the application's theme.
  • Task: Conductor - User Manual Verification 'Phase 2: Custom OS Window Frame Implementation' (Protocol in workflow.md)

Phase 3: Core Shader Pipeline Integration

  • Task: Write Tests: Verify the shader manager class initializes without errors and can load a basic shader program.
  • Task: Implement: Create src/shader_manager.py (or extend src/shaders.py) to handle loading, compiling, and binding true GPU shaders or advanced Faux-Shaders.
  • Task: Write Tests: Verify shader uniform data can be updated from Python dictionaries/TOML configurations.
  • Task: Implement: Add support for uniform passing (time, resolution, mouse pos) to the shader pipeline.
  • Task: Conductor - User Manual Verification 'Phase 3: Core Shader Pipeline Integration' (Protocol in workflow.md)

Phase 4: Specific Shader Implementations (CRT, Post-Process, Backgrounds)

  • Task: Write Tests: Verify background shader logic can render behind the main ImGui layer.
  • Task: Implement: Add "Dynamic Background" shader implementation (e.g., animated noise/gradients).
  • Task: Write Tests: Verify post-process shader logic can capture the ImGui output and apply an effect over it.
  • Task: Implement: Add "CRT / Retro" (NERV theme) and general "Post-Processing" (bloom/blur) shaders.
  • Task: Conductor - User Manual Verification 'Phase 4: Specific Shader Implementations' (Protocol in workflow.md)

Phase 5: Configuration and Live Editor UI

  • Task: Write Tests: Verify shader and window frame settings can be parsed from config.toml.
  • Task: Implement: Update src/theme.py / src/project_manager.py to parse and apply shader/window configurations from TOML.
  • Task: Write Tests: Verify the Live UI Editor panel renders and modifying its values updates the shader uniforms.
  • Task: Implement: Create a "Live UI Editor" Dear PyGui/ImGui panel to tweak shader uniforms in real-time.
  • Task: Conductor - User Manual Verification 'Phase 5: Configuration and Live Editor UI' (Protocol in workflow.md)