React Samples

SDL3 Wasm sample

loading file...

  • use emscripten for SDL3 code.
  • 20k particles collistion c++ sample
  • thread/collision grid/SoA memory layout on 600 x 600 fixed canvas
  • Reference: johnBuffer VerletSFML for basic verlet calculation, matthias-research tenMinutesPhysics for collision detection
  • using subset of Roboto-2 font
  • set cross origin headers in _headers file:
     
    /*
        Access-Control-Allow-Origin: *
        Cross-Origin-Embedder-Policy: credentialless
        Cross-Origin-Opener-Policy: same-origin
        Cross-Origin-Resource-Policy: cross-origin
       
  • used emscripten options in cmake:
     
    target_compile_options($'{'PROJECT_NAME'}' PRIVATE
        "-msimd128"
        "-sUSE_PTHREADS=1"
    )
    target_link_options(${PROJECT_NAME} PRIVATE 
        "-sUSE_SDL=3"
        "-sUSE_SDL_TTF=3"
        "-sEXPORTED_RUNTIME_METHODS=['PThread']"
        "-sEXPORTED_FUNCTIONS=['_main', '_stop_loop']"
        "-sMODULARIZE=1"
        "-sEXPORT_NAME=ParticlesModule"
        "-sUSE_PTHREADS=1"
        "-sENVIRONMENT=web"
        "-sPTHREAD_POOL_SIZE=4"
        "-sPROXY_TO_PTHREAD=1"
        "-sALLOW_BLOCKING_ON_MAIN_THREAD=0"
        "-sOFFSCREENCANVAS_SUPPORT=1"
        "-sEXIT_RUNTIME=1"
        "SHELL:--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/assets@/assets"
        "-sALLOW_MEMORY_GROWTH=0"
    )