Commit Graph

11 Commits

Author SHA1 Message Date
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_
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_
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_
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_
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_
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_
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