pcbjam/tests/gal-regression/wasm/webgl
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Viktor Vaczi 74faa7e249 fix(webgl): Fix alpha-blending with proper blend functions
Alpha-blended shapes were rendering nearly invisible due to incorrect
blend function configuration in two places:

1. FBO rendering (webgl_gal.cpp): Changed to glBlendFuncSeparate to handle
   RGB and alpha channels independently. Alpha channel now accumulates
   coverage correctly (prevents it from staying near 0.0 when rendering
   with alpha=0.5).

2. Compositor (webgl_compositor.cpp): Changed from premultiplied alpha
   blend (GL_ONE, GL_ONE_MINUS_SRC_ALPHA) to straight alpha blend
   (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) since our FBOs use straight alpha.

Also marked Transform() as dead code with explanation - never called in
KiCad and has no effect even in native OPENGL_GAL.

Result: Alpha-blending scenario now renders correctly with proper color
mixing for overlapping shapes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-09 14:47:20 +01:00
..
antialiasing.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
bitmap_font_desc.c feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
bitmap_font_img.c feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
cached_container.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
cached_container.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
cached_container_gpu.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
cached_container_gpu.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
cached_container_ram.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
cached_container_ram.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
fullscreen_quad.cpp feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
fullscreen_quad.h feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
gl_context_mgr.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
gl_context_mgr.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
gl_resources.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
gl_resources.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
gl_utils.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
gpu_manager.cpp fix(webgl): Add VAO support for WebGL 2.0 rendering 2026-01-08 11:19:16 +01:00
gpu_manager.h fix(webgl): Add VAO support for WebGL 2.0 rendering 2026-01-08 11:19:16 +01:00
kiglew.h feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
noncached_container.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
noncached_container.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
shader.cpp feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
shader.h feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
SmaaAreaTex.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
SmaaSearchTex.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
utils.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
utils.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_common.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_container.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_container.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_item.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_item.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_manager.cpp feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
vertex_manager.h feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
webgl_antialiasing.cpp feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
webgl_antialiasing.h feat(webgl): Add WEBGL_GAL implementation (compiles, not yet rendering) 2026-01-07 21:04:42 +01:00
webgl_compositor.cpp fix(webgl): Fix alpha-blending with proper blend functions 2026-01-09 14:47:20 +01:00
webgl_compositor.h feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00
webgl_gal.cpp fix(webgl): Fix alpha-blending with proper blend functions 2026-01-09 14:47:20 +01:00
webgl_gal.h feat(webgl): Replace legacy GL with modern OpenGL ES 3.0 2026-01-07 23:33:49 +01:00