Commit Graph

1600 Commits

Author SHA1 Message Date
Ed_
1eed009b12 fix(shader): Use custom_background callback to render blurred texture
- Add _render_custom_background method as hello_imgui callback
- Render blurred FBO texture as ImGui background
- Use ctypes.cast to convert OpenGL texture ID to ImTextureRef
2026-03-13 21:44:55 -04:00
Ed_
aed461ef28 fix(shader): Add proper VAO setup for OpenGL 3.3 core profile
- Create _create_quad_vao() method that creates VAO with vertex buffer
- Use explicit vertex attributes (a_position, a_texcoord) in shaders
- Bind VAO before glDrawArrays calls
- Use ctypes for proper buffer sizing
2026-03-13 21:35:23 -04:00
Ed_
1d36357c64 fix(shader): Disable frosted glass - OpenGL 3.3 core profile incompatible with fixed-function
The issue is that imgui-bundle uses OpenGL 3.3 core profile which doesn't
support glBegin/glEnd. The shaders require VAO setup which is failing.
This needs proper OpenGL debugging in the imgui-bundle context.
2026-03-13 21:28:39 -04:00
Ed_
3113e4137b fix(shader): Disable frosted glass - OpenGL context issues
The frosted glass effect crashes with GLError 1282 'invalid operation'
when calling glDrawArrays. This is likely due to missing VAO setup
or OpenGL context issues in the hello_imgui/imgui-bundle environment.

DISABLED the effect by default to allow the app to run.
Feature needs proper OpenGL VAO setup to work.
2026-03-13 21:24:14 -04:00
Ed_
cf5eac8c43 fix(gui): Guard against invalid display_size in blur pipeline init
- Remove _init_blur_pipeline call from _post_init (display_size invalid at startup)
- Add validation for ws.x > 0 and ws.y > 0 before FBO creation
- Add validation for fb_scale > 0 with default fallback to 1.0
- Make _init_blur_pipeline return bool for success/failure
- Update plan.md to reflect current progress

Fixes crash: GLError(err=1281, description=b'invalid value')
2026-03-13 21:08:13 -04:00
Ed_
db00fba836 fix(gui): Guard against invalid display_size in blur pipeline init
- Remove _init_blur_pipeline call from _post_init (display_size not valid yet)
- Add dimension validation in _init_blur_pipeline (ws.x > 0 and ws.y > 0)
- Add fb_scale validation (default to 1.0 if <= 0)
- Lazy init only happens when frosted glass is enabled and dimensions are valid
- Fixes GLError 1281 'invalid value' crash on startup
2026-03-13 21:07:09 -04:00
Ed_
a862119922 feat(gui): Add frosted glass tests
- Add test_frosted_glass_disabled (basic test)
- Add test_frosted_glass_enabled (mock-based test)
Task: Phase 3, Task 1-2 complete
2026-03-13 20:56:50 -04:00
Ed_
e6a57cddc2 conductor(plan): Mark Phase 3 Task 1 complete, begin Tasks 2-3 2026-03-13 20:46:59 -04:00
Ed_
928318fd06 feat(gui): Integrate BlurPipeline with GUI for frosted glass
- Add BlurPipeline import and instance in App class
- Add _pre_new_frame callback to call prepare_global_blur before
- Add ui_frosted_glass_enabled toggle in Shader Editor
- Add _render_frosted_background with screen-space UV sampling
- Add _draw_blurred_rect using ImGui DrawList add_image_quad
- All 12 BlurPipeline tests pass

Task: Phase 3, Task 1 of frosted_glass_20260313 track
2026-03-13 20:46:36 -04:00
Ed_
5416546207 conductor(plan): Mark Phase 2 complete, begin Phase 3 2026-03-13 20:39:20 -04:00
Ed_
9c2078ad78 feat(shader): Add prepare_global_blur and high-DPI scaling support
- Add prepare_global_blur() method combining Deep Sea render + blur
- Add fb_scale parameter to setup_fbos() for high-DPI display support
- FBOs now created at scaled resolution (width * fb_scale, height * fb_scale)
- prepare_global_blur() auto-initializes FBOs if scale changes
- Add test_blur_pipeline_prepare_global_blur
- Add test_blur_pipeline_high_dpi_scaling

Task: Phase 2, Tasks 1-2 of frosted_glass_20260313 track
2026-03-13 20:38:03 -04:00
Ed_
ab44102bad conductor(plan): Mark task 'Wide tap Gaussian blur' as complete 2026-03-13 20:28:42 -04:00
Ed_
c8b7fca368 feat(shader): Expand Gaussian blur to 13-tap wide distribution
- Update horizontal and vertical blur shaders from 9-tap to 13-tap kernel
- Use Gaussian weights with sigma=3.5 for creamier 'milky' blur effect
- Add test_blur_pipeline_wide_tap_distribution to verify >= 11 texture samples
- Weights: [0.0152, 0.0300, 0.0525, 0.0812, 0.1110, 0.1342, 0.1432] (symmetric)

Task: Phase 1, Task 3 of frosted_glass_20260313 track
2026-03-13 20:28:12 -04:00
Ed_
b3e6590cb4 conductor(plan): Mark task 'Deep Sea background shader' as complete 2026-03-13 20:25:57 -04:00
Ed_
d85dc3a1b3 feat(shader): Add Deep Sea background shader for BlurPipeline
- Add compile_deepsea_shader() with animated underwater-like GLSL shader
- Add render_deepsea_to_fbo() to render background to scene FBO
- Deep Sea shader features: FBM noise, animated blobs, caustic lines, vignette
- Add deepsea_program to cleanup() for proper resource management
- Add 2 new tests for Deep Sea shader compilation and FBO rendering

Task: Phase 1, Task 2 of frosted_glass_20260313 track
2026-03-13 20:25:26 -04:00
Ed_
2947948ac6 conductor(plan): Mark task 'BlurPipeline FBO setup' as complete 2026-03-13 20:22:43 -04:00
Ed_
d9148acb0c feat(shader): Add BlurPipeline class for frosted glass FBO setup
- Add BlurPipeline class with downsampled FBO support (scene, blur_a, blur_b)
- Implement 2-pass Gaussian blur shaders (horizontal + vertical)
- Add setup_fbos(), compile_blur_shaders(), prepare_blur(), cleanup() methods
- Add tests for BlurPipeline initialization, FBO setup, shader compilation, blur execution, and cleanup

Task: Phase 1, Task 1 of frosted_glass_20260313 track
2026-03-13 20:22:16 -04:00
Ed_
2c39f1dcf4 sigh 2026-03-13 20:13:51 -04:00
Ed_
1a8efa880a tired 2026-03-13 20:12:56 -04:00
Ed_
11eb69449d dumb ai 2026-03-13 19:46:23 -04:00
Ed_
3a0d388502 adjust tracks.md 2026-03-13 14:41:08 -04:00
Ed_
879e0991c9 chore(conductor): Add new track 'Frosted Glass Background Effect' 2026-03-13 14:40:43 -04:00
Ed_
d96adca67c update track ordering 2026-03-13 14:40:37 -04:00
Ed_
4b0ebe44ff chore(conductor): Add new track 'Advanced Text Viewer with Syntax Highlighting' 2026-03-13 14:28:32 -04:00
Ed_
6b8151235f adjust track loc 2026-03-13 13:59:43 -04:00
Ed_
69107a75d3 chore(conductor): Add new track 'Rich Thinking Trace Handling' 2026-03-13 13:54:13 -04:00
Ed_
89c9f62f0c use maple mono. 2026-03-13 13:49:27 -04:00
Ed_
87e6b5c665 more win32 wrap 2026-03-13 13:39:42 -04:00
Ed_
9f8dd48a2e wrap win32 usage in conditionals 2026-03-13 13:29:13 -04:00
Ed_
87bd2ae11c fixed. 2026-03-13 13:23:31 -04:00
Ed_
a57a3c78d4 fixes 2026-03-13 13:15:58 -04:00
Ed_
ca01397885 checkpoint: fixing ux with window frame bar 2026-03-13 13:13:35 -04:00
Ed_
c76aba64e4 docs(conductor): Synchronize docs for track 'Custom Shader and Window Frame Support' 2026-03-13 12:45:58 -04:00
Ed_
96de21b2b2 chore(conductor): Mark track 'Custom Shader and Window Frame Support' as complete 2026-03-13 12:45:13 -04:00
Ed_
25d7d97455 conductor(plan): Mark Phase 5 as complete 2026-03-13 12:45:03 -04:00
Ed_
da478191e9 conductor(checkpoint): Checkpoint end of Phase 5 2026-03-13 12:44:37 -04:00
Ed_
9b79044caa conductor(plan): Mark Phase 5 implementations as complete 2026-03-13 12:44:19 -04:00
Ed_
229fbe2b3f feat(gui): Implement live shader editor panel 2026-03-13 12:43:54 -04:00
Ed_
d69434e85f feat(config): Implement parsing for shader and window frame configurations 2026-03-13 12:41:24 -04:00
Ed_
830bd7b1fb conductor(plan): Mark Phase 4 as complete 2026-03-13 12:38:05 -04:00
Ed_
50f98deb74 conductor(checkpoint): Checkpoint end of Phase 4 2026-03-13 12:37:45 -04:00
Ed_
67ed51056e conductor(plan): Mark Phase 4 implementations as complete 2026-03-13 12:36:05 -04:00
Ed_
905ac00e3f feat(shaders): Implement CRT post-process shader logic 2026-03-13 12:35:43 -04:00
Ed_
836168a2a8 feat(shaders): Implement dynamic background shader 2026-03-13 12:33:27 -04:00
Ed_
2dbd570d59 conductor(plan): Mark Phase 3 as complete 2026-03-13 12:31:02 -04:00
Ed_
5ebce894bb conductor(checkpoint): Checkpoint end of Phase 3 2026-03-13 12:30:41 -04:00
Ed_
6c4c567ed0 conductor(plan): Mark Phase 3 as complete 2026-03-13 12:29:34 -04:00
Ed_
09383960be feat(shaders): Implement uniform data passing for ShaderManager 2026-03-13 12:29:10 -04:00
Ed_
ac4f63b76e feat(shaders): Create ShaderManager with basic compilation 2026-03-13 12:27:01 -04:00
Ed_
356d5f3618 conductor(plan): Mark Phase 2 as complete 2026-03-13 12:24:03 -04:00