feat(webgl): Fix GL initialization and add GLSL ES shader conversion
Progress on WEBGL_GAL rendering: - Fix GLImmediateShim initialization by adding GL function dependencies (glBegin, glEnd, glVertex2f, etc.) to $GLImmediateShim__deps - Add COLOR4D(EDA_COLOR_T) constructor stub to wasm_stubs.cpp - Fix GAL context locking - add LockContext/UnlockContext calls - Add exception catching to build (-sNO_DISABLE_EXCEPTION_CATCHING) - Create GLSL ES 1.00 shader converter in generate_shaders.py: - Remove #version 120 directive (ES 1.00 default) - Add precision highp float/int qualifiers - Convert int * float to float literals (2 * x -> 2.0 * x) - Update build script to clean output files for linker flag changes - Add console capture to test spec for debugging Current status: - WASM builds and loads successfully - GLImmediateShim initializes correctly - WEBGL_GAL creates successfully - Shader compilation fails due to Emscripten LEGACY_GL_EMULATION prepending code that conflicts with custom shader precision Next: Investigate shader compilation with LEGACY_GL_EMULATION or consider alternative approaches for GL compatibility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c23bc974be
commit
6c2cf85177
17 changed files with 182 additions and 24 deletions
|
|
@ -61,13 +61,15 @@ CXXFLAGS = $(OPT_FLAGS) $(WX_CXXFLAGS) $(KICAD_INCLUDES) -std=c++20
|
|||
# Emscripten flags
|
||||
BASE_LDFLAGS = -sALLOW_MEMORY_GROWTH=1 \
|
||||
-sERROR_ON_UNDEFINED_SYMBOLS=0 \
|
||||
-sNO_DISABLE_EXCEPTION_CATCHING \
|
||||
-sEXPORTED_FUNCTIONS=['_main','_runScenario','_getTotalScenarios','_getCurrentScenario','_getCanvasWidth','_getCanvasHeight'] \
|
||||
-sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','HEAPU8'] \
|
||||
-sMODULARIZE=1 \
|
||||
-sEXPORT_NAME='createGALTest' \
|
||||
-sENVIRONMENT=web
|
||||
|
||||
# GL-specific flags - LEGACY_GL_EMULATION handles legacy GL calls
|
||||
# GL-specific flags - LEGACY_GL_EMULATION handles legacy GL calls (glBegin/glEnd)
|
||||
# WebGL 2.0 for modern shader support
|
||||
EM_GL_FLAGS = -sLEGACY_GL_EMULATION=1 -sMAX_WEBGL_VERSION=2
|
||||
GL_SHIM = $(PROJECT_ROOT)/wasm/shims/gl_immediate_shim.js
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue