ae8688974bf Merge branch 'master' into docking f7ba6453980 InputText: fixed not filling callback's SelectionEnd. (#7925) e648dbb59d2 Tables: fixed auto-width columns when using synced-instances of same table. (#7218) 6aade6912a1 Inputs: SetNextItemShortcut() with ImGuiInputFlags_Tooltip doesn't show tooltip when item is active. dad9f45e3ed Windows: fixed an issue where double-click to collapse could be triggered even while another item is active. (#7841, #7369) 71714eab536 Tables: fixed assertion related to inconsistent outer clipping when sizes are not rounded. (#7957) 11fba027e50 Tables: using table->InnerClipRect more consistently. Fixes an assertion with tables with borders when clipped by parent. (#6765, #3752, #7428) 1ab1e3c6563 Backends: SDL3: rework implementation of ImGuiViewportFlags_NoTaskBarIcon. (#7989) 6ce26ef11d5 AddFont: added assert to better detect uninitialized struct. (#7993) 08b1496b7e5 Backends: Win32: fixed an issue where a viewport destroyed while clicking would hog mouse tracking and temporary lead to incorrect update of HoveredWindow. (#7971) 8ba7efb738d Backends: Win32: fixed an issue where a viewport destroyed while clicking would hog mouse tracking and temporary lead to incorrect update of HoveredWindow. (#7971) 1ac162f2b08 Backends: WGPU: add IMGUI_IMPL_WEBGPU_BACKEND_DAWN/IMGUI_IMPL_WEBGPU_BACKEND_WGPU to support more targets. (#7977, #7969, #6602, #6188, #7523) 4925695ae88 InputText: optimize InputTextCalcTextLenAndLineCount() for inactive multiline path. (#7925) 7ac50bf77d0 InputText: more tidying up of selection search loop. aef07aea274 InputText: minor tidying up of selection search loop (no need to imply it runs in single line mode) b53d91a4c40 InputText: optimization for large text: using memchr() instead of strchr() shaves 0.2 ms on 865k multi-line text case. Approximately 20%. (#7925) 44a74509af9 Backends: Win32: fixed direct calls to platform_io.Platform_SetWindowPos()/Platform_SetWindowSize() on windows created by application (typically main viewport). 510b6adc9bb CI: disable month-long PVS Studio warning about expiring licence. 8040c02b32b Viewports: fixed an issue where a window manually constrained to the main viewport while crossing over main viewport bounds isn't translated properly. (#7985) dab63231d88 Misc: Made it accepted to call SetMouseCursor() with any out-of-bound value, as a way to allow hacking in custom cursors if desirable. git-subtree-dir: external/imgui git-subtree-split: ae8688974bf85530606c9fe9aab1e2c7b8f22719
How to Build
-
You need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions
-
Depending on your configuration, in Windows you may need to run
emsdk/emsdk_env.batin your console to access the Emscripten command-line tools. -
You may also refer to our Continuous Integration setup for Emscripten setup.
-
Then build using
make -f Makefile.emscriptenwhile in theexample_glfw_wgpu/directory. -
Requires recent Emscripten as WGPU is still a work-in-progress API.
How to Run
To run on a local machine:
- Make sure your browse supports WGPU and it is enabled. WGPU is still WIP not enabled by default in most browser.
make servewill use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build.- Otherwise, generally you will need a local webserver:
- Quoting https://emscripten.org/docs/getting_started:
"Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// XHR requests, and can’t load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers you’ll need to serve the files using a local webserver and then open http://localhost:8000/hello.html." - Emscripten SDK has a handy
emruncommand:emrun web/example_glfw_wgpu.html --browser firefoxwhich will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details. - You may use Python 3 builtin webserver:
python -m http.server -d web(this is whatmake serveuses). - You may use Python 2 builtin webserver:
cd web && python -m SimpleHTTPServer. - If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only).
- Quoting https://emscripten.org/docs/getting_started: