# Specification: Frosted Glass Background Effect ## Overview Implement a high-fidelity "frosted glass" (acrylic) background effect for all GUI panels and popups within the Manual Slop interface. This effect will use a GPU-resident shader to blur the content behind active windows, improving readability and visual depth while preventing background text from clashing with foreground UI elements. ## Functional Requirements - **GPU-Accelerated Blur:** - Implement a GLSL fragment shader (e.g., Gaussian or Kawase blur) within the existing `ShaderManager` pipeline. - The shader must sample the current frame buffer background and render a blurred version behind the active window's background. - **Global Integration:** - The effect must automatically apply to all standard ImGui panels and popups. - Integrate with `imgui.begin()` and `imgui.begin_popup()` (or via a reusable wrapper helper). - **Real-Time Tuning:** - Add controls to the **Live Shader Editor** to adjust the following parameters: - **Blur Radius:** Control the intensity of the Gaussian blur. - **Tint Intensity:** Control the strength of the "frost" overlay color. - **Base Opacity:** Control the overall transparency of the frosted layer. - **Persistence:** - Save frosted glass parameters to `config.toml` under the `theme` or `shader` section. ## Technical Implementation - **Shader Pipeline:** Use `PyOpenGL` to manage a dedicated background texture/FBO for sampling. - **Coordinate Mapping:** Ensure the blur shader correctly maps screen coordinates to the region behind the current ImGui window. - **State Integration:** Store tuning parameters in `App.shader_uniforms` and ensure they are updated every frame. ## Acceptance Criteria - [ ] Panels and popups have a distinct, blurred background that clearly separates them from the content behind them. - [ ] Changing the "Blur Radius" slider in the Shader Editor immediately updates the visual frostiness. - [ ] The effect remains stable during window dragging and resizing. - [ ] No significant performance degradation (maintaining target FPS). ## Out of Scope - Implementing different blur types (e.g., motion blur, radial blur). - Per-panel unique blur settings (initially global only).