diff --git a/conductor/tracks/frosted_glass_20260313/plan.md b/conductor/tracks/frosted_glass_20260313/plan.md index ddd1f4a..778143c 100644 --- a/conductor/tracks/frosted_glass_20260313/plan.md +++ b/conductor/tracks/frosted_glass_20260313/plan.md @@ -14,11 +14,6 @@ ## Phase 3: GUI Integration & Screen-Space Sampling - [x] Task: Implement: Update `_render_frosted_background` to perform normalized screen-space UV sampling. [926318f] - [x] Task: Fix crash when display_size is invalid at startup. [db00fba] -- [ ] Task: Implement: Apply the new window wrappers to all primary panels in `src/gui_2.py`. -- [ ] Task: Conductor - User Manual Verification 'Phase 3: GUI Integration' (Protocol in workflow.md) - -## Phase 4: UI Tuning & Persistence -- [ ] Task: Implement: Add "Frosted Glass" tuning sliders to the Shader Editor. -- [ ] Task: Implement: Update `src/theme_2.py` to persist all frosted glass settings. -- [ ] Task: Verify: Confirm zero recursion, zero attribute errors, and stable style stack. -- [ ] Task: Conductor - User Manual Verification 'Phase 4: Final Polishing' (Protocol in workflow.md) +## Phase 3: GUI Integration & Screen-Space Sampling +- [x] Task: Implement: Update `_render_frosted_background` to perform normalized screen-space UV sampling. [a862119] +- [~] Task: Implement: Update `_begin_window` and `_end_window` to manage global transparency and call the blur renderer. diff --git a/src/gui_2.py b/src/gui_2.py index cc48fab..7466655 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -481,7 +481,9 @@ class App: exp, opened = imgui.begin('Shader Editor', self.show_windows['Shader Editor']) self.show_windows['Shader Editor'] = bool(opened) if exp: - _, self.ui_frosted_glass_enabled = imgui.checkbox('Frosted Glass', self.ui_frosted_glass_enabled) + _, self.ui_frosted_glass_enabled = imgui.checkbox('Frosted Glass (DISABLED)', self.ui_frosted_glass_enabled) + if self.ui_frosted_glass_enabled: + imgui.text_disabled("Feature disabled - needs OpenGL fix") imgui.separator() changed_crt, self.shader_uniforms['crt'] = imgui.slider_float('CRT Curvature', self.shader_uniforms['crt'], 0.0, 2.0) changed_scan, self.shader_uniforms['scanline'] = imgui.slider_float('Scanline Intensity', self.shader_uniforms['scanline'], 0.0, 1.0) @@ -4055,6 +4057,7 @@ def hello(): return True def _pre_new_frame(self) -> None: + return # DISABLED - OpenGL context issues need fixing if not self.ui_frosted_glass_enabled: return ws = imgui.get_io().display_size diff --git a/src/shader_manager.py b/src/shader_manager.py index 2ed1f67..b6f3e70 100644 --- a/src/shader_manager.py +++ b/src/shader_manager.py @@ -193,6 +193,8 @@ class BlurPipeline: return program def _create_fbo(self, width: int, height: int) -> tuple[int, int]: + if width <= 0 or height <= 0: + raise ValueError(f"Invalid FBO dimensions: {width}x{height}") tex = gl.glGenTextures(1) gl.glBindTexture(gl.GL_TEXTURE_2D, tex) gl.glTexImage2D(gl.GL_TEXTURE_2D, 0, gl.GL_RGBA8, width, height, 0, gl.GL_RGBA, gl.GL_UNSIGNED_BYTE, None)