chore(conductor): Add new track 'Custom Shader and Window Frame Support'

This commit is contained in:
2026-03-09 21:37:57 -04:00
parent e3fd58a0c8
commit fe0f349c12
5 changed files with 87 additions and 3 deletions

View File

@@ -0,0 +1,34 @@
# Specification: Custom Shader and Window Frame Support
## Overview
Implement proper custom shader support for post-process rendering and backgrounds within the Manual Slop GUI (using Dear PyGui/imgui-bundle). Additionally, investigate and implement a method to overload or replace the default OS window frame to ensure it matches the application's theme.
## Functional Requirements
- **Shader Pipeline:**
- Support a hybrid approach: true GPU shaders (if feasible within the Python/imgui-bundle constraints) alongside extensions to the existing ImDrawList "faux-shader" batching system.
- Implement rendering for a variety of shader effects, including:
- CRT / Retro effects (scanlines, curvature, chromatic aberration for the NERV theme).
- Post-Processing (bloom, blur, color grading, vignetting).
- Dynamic Backgrounds (animated noise, gradients, particles).
- **Custom Window Frame:**
- Overload or replace the default OS window frame to match the active UI theme.
- Utilize the most convenient approach for the Python ecosystem (e.g., borderless window mode with an ImGui-drawn custom title bar, or accessible native hooks).
- Ensure standard window controls (minimize, maximize, close, drag to move) remain fully functional.
- **Configuration & Tooling:**
- **Theme TOML:** Allow users to define shader parameters and window frame styles within existing `config.toml` or theme configuration files.
- **Live UI Editor:** Provide an in-app GUI panel to tweak shader uniforms and window settings in real-time.
## Non-Functional Requirements
- **Performance:** Shader implementations must not severely degrade GUI performance or responsiveness. Target 60 FPS for standard operations.
- **Maintainability:** Ensure the shader pipeline integrates cleanly with the existing event-driven metrics and theme architecture (`src/theme_*.py`, `src/gui_2.py`).
## Acceptance Criteria
- [ ] A dynamic background shader can be successfully loaded and displayed behind the main ImGui workspace.
- [ ] A post-processing shader (e.g., CRT scanlines or bloom) can be applied over the ImGui render output.
- [ ] The default OS window frame is successfully replaced or styled to match the selected theme, with working title bar controls.
- [ ] Shader and window settings can be configured via a TOML file.
- [ ] A "Live UI Editor" panel is available to adjust shader variables in real-time.
## Out of Scope
- Building a full node-based shader graph editor from scratch.
- Cross-platform native window hook wrappers (if not conveniently supported by existing Python libraries, we will fallback to pure ImGui borderless implementation).