2.5 KiB
Debrief: Failed Frosted Glass Implementation (Attempt 1)
1. Post-Mortem Summary
The initial implementation of the Frosted Glass effect was a catastrophic failure resulting in application crashes (RecursionError, AttributeError, RuntimeError) and visual non-functionality (black backgrounds or invisible blurs).
2. Root Causes
A. Architectural Blindness (ImGui Timing)
I attempted to use glCopyTexImage2D to capture the "backbuffer" during the _gui_func execution. In an immediate-mode GUI (ImGui), the backbuffer is cleared at the start of the frame and draw commands are only recorded during _gui_func. The actual GPU rendering happens after _gui_func finishes. Consequently, I was capturing and blurring an empty black screen every frame.
B. Sub-Agent Fragmentation (Class Scope Breaks)
By delegating massive file refactors to the generalist sub-agent, I lost control over the strict 1-space indentation required by this project. The sub-agent introduced unindented blocks that silently closed the App class scope, causing all subsequent methods to become global functions. This lead to the avalanche of AttributeError: 'App' object has no attribute '_render_operations_hub_contents' and similar errors.
C. Style Stack Imbalance
The implementation of _begin_window and _end_window wrappers failed to account for mid-render state changes. Toggling the "Frosted Glass" checkbox mid-frame resulted in mismatched PushStyleColor and PopStyleColor calls, triggering internal ImGui assertions and hard crashes.
D. High-DPI Math Errors
The UV coordinate math failed to correctly account for display_framebuffer_scale. On high-resolution screens, the blur sampling was offset by thousands of pixels, rendering the effect physically invisible or distorted.
TODO:
LOOK AT THIS SHIT:
https://www.unknowncheats.me/forum/general-programming-and-reversing/617284-blurring-imgui-basically-window-using-acrylic-blur.html
https://github.com/Speykious/opengl-playground/blob/main/src/scenes/blurring.rs
https://www.intel.com/content/www/us/en/developer/articles/technical/an-investigation-of-fast-real-time-gpu-based-image-blur-algorithms.html
45aa431286/Renderer/RendererRuntime/src/DebugGui/DebugGuiManager.cpp
45aa431286/Renderer/RendererRuntime/src/DebugGui/Detail/Shader/DebugGui_GLSL_410.h
https://github.com/itsRythem/ImGui-Blur