Backends, Examples: removed Emscripten < 4.0.10 support. Removed IMGUI_IMPL_WEBGPU_BACKEND_WGPU. (#9281, #8381)

- This commit removes the option of using -sUSE_WEBGPU=1 from CMake and make
- Compiling with a version of Emscripten >= 4.0.10 will work the same way as it was before
- Compiling with a version of Emscripten < 4.0.10 will print an error message and abort the build (in the case of CMake)
- Since there can only be 1 implementation for the backend in the case of Emscripten, this commit cleans the code accordingly
diff --git a/backends/imgui_impl_wgpu.cpp b/backends/imgui_impl_wgpu.cpp
index e98e9f3..a01bcf4 100644
--- a/backends/imgui_impl_wgpu.cpp
+++ b/backends/imgui_impl_wgpu.cpp
@@ -59,12 +59,6 @@
 #error Exactly one of IMGUI_IMPL_WEBGPU_BACKEND_DAWN or IMGUI_IMPL_WEBGPU_BACKEND_WGPU must be defined!
 #endif
 
-// This condition is true when it's built with EMSCRIPTEN using -sUSE_WEBGPU=1 flag  (deprecated from 4.0.10)
-// This condition is false for all other 3 cases: WGPU-Native, DAWN-Native or DAWN-EMSCRIPTEN (using --use-port=emdawnwebgpu flag)
-#if defined(__EMSCRIPTEN__) && defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
-#define IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN
-#endif
-
 #ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
 // Dawn renamed WGPUProgrammableStageDescriptor to WGPUComputeState (see: https://github.com/webgpu-native/webgpu-headers/pull/413)
 // Using type alias until WGPU adopts the same naming convention (#8369)
@@ -261,15 +255,9 @@
 {
     ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData();
 
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
     WGPUShaderSourceWGSL wgsl_desc = {};
     wgsl_desc.chain.sType = WGPUSType_ShaderSourceWGSL;
     wgsl_desc.code = { wgsl_source, WGPU_STRLEN };
-#else
-    WGPUShaderModuleWGSLDescriptor wgsl_desc = {};
-    wgsl_desc.chain.sType = WGPUSType_ShaderModuleWGSLDescriptor;
-    wgsl_desc.code = wgsl_source;
-#endif
 
     WGPUShaderModuleDescriptor desc = {};
     desc.nextInChain = (WGPUChainedStruct*)&wgsl_desc;
@@ -277,11 +265,7 @@
     WGPUProgrammableStageDescriptor stage_desc = {};
     stage_desc.module = wgpuDeviceCreateShaderModule(bd->wgpuDevice, &desc);
 
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
     stage_desc.entryPoint = { "main", WGPU_STRLEN };
-#else
-    stage_desc.entryPoint = "main";
-#endif
     return stage_desc;
 }
 
@@ -400,11 +384,7 @@
         WGPUBufferDescriptor vb_desc =
         {
             nullptr,
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
             { "Dear ImGui Vertex buffer", WGPU_STRLEN, },
-#else
-            "Dear ImGui Vertex buffer",
-#endif
             WGPUBufferUsage_CopyDst | WGPUBufferUsage_Vertex,
             MEMALIGN(fr->VertexBufferSize * sizeof(ImDrawVert), 4),
             false
@@ -428,11 +408,7 @@
         WGPUBufferDescriptor ib_desc =
         {
             nullptr,
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
             { "Dear ImGui Index buffer", WGPU_STRLEN, },
-#else
-            "Dear ImGui Index buffer",
-#endif
             WGPUBufferUsage_CopyDst | WGPUBufferUsage_Index,
             MEMALIGN(fr->IndexBufferSize * sizeof(ImDrawIdx), 4),
             false
@@ -564,11 +540,7 @@
 
         // Create texture
         WGPUTextureDescriptor tex_desc = {};
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
         tex_desc.label = { "Dear ImGui Texture", WGPU_STRLEN };
-#else
-        tex_desc.label = "Dear ImGui Texture";
-#endif
         tex_desc.dimension = WGPUTextureDimension_2D;
         tex_desc.size.width = tex->Width;
         tex_desc.size.height = tex->Height;
@@ -609,20 +581,12 @@
 
         // Update full texture or selected blocks. We only ever write to textures regions which have never been used before!
         // This backend choose to use tex->UpdateRect but you can use tex->Updates[] to upload individual regions.
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
         WGPUTexelCopyTextureInfo dst_view = {};
-#else
-        WGPUImageCopyTexture dst_view = {};
-#endif
         dst_view.texture = backend_tex->Texture;
         dst_view.mipLevel = 0;
         dst_view.origin = { (uint32_t)upload_x, (uint32_t)upload_y, 0 };
         dst_view.aspect = WGPUTextureAspect_All;
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
         WGPUTexelCopyBufferLayout layout = {};
-#else
-        WGPUTextureDataLayout layout = {};
-#endif
         layout.offset = 0;
         layout.bytesPerRow = tex->Width * tex->BytesPerPixel;
         layout.rowsPerImage = upload_h;
@@ -640,11 +604,7 @@
     WGPUBufferDescriptor ub_desc =
     {
         nullptr,
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
         { "Dear ImGui Uniform buffer", WGPU_STRLEN, },
-#else
-        "Dear ImGui Uniform buffer",
-#endif
         WGPUBufferUsage_CopyDst | WGPUBufferUsage_Uniform,
         MEMALIGN(sizeof(Uniforms), 16),
         false
@@ -756,11 +716,7 @@
     // Create depth-stencil State
     WGPUDepthStencilState depth_stencil_state = {};
     depth_stencil_state.format = bd->depthStencilFormat;
-#if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU_EMSCRIPTEN)
     depth_stencil_state.depthWriteEnabled = WGPUOptionalBool_False;
-#else
-    depth_stencil_state.depthWriteEnabled = false;
-#endif
     depth_stencil_state.depthCompare = WGPUCompareFunction_Always;
     depth_stencil_state.stencilFront.compare = WGPUCompareFunction_Always;
     depth_stencil_state.stencilFront.failOp = WGPUStencilOperation_Keep;
@@ -845,12 +801,8 @@
     io.BackendRendererName = "imgui_impl_wgpu (Dawn, Native)";
 #endif
 #elif defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
-#if defined(__EMSCRIPTEN__)
-    io.BackendRendererName = "imgui_impl_wgpu (WGPU, Emscripten)"; // linked using EMSCRIPTEN with "-sUSE_WEBGPU=1" flag, deprecated from EMSCRIPTEN 4.0.10
-#else
     io.BackendRendererName = "imgui_impl_wgpu (WGPU, Native)";
 #endif
-#endif
     io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset;  // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes.
     io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures;   // We can honor ImGuiPlatformIO::Textures[] requests during render.
 
diff --git a/backends/imgui_impl_wgpu.h b/backends/imgui_impl_wgpu.h
index 1e026be..b0fc993 100644
--- a/backends/imgui_impl_wgpu.h
+++ b/backends/imgui_impl_wgpu.h
@@ -33,20 +33,7 @@
 // Setup Emscripten default if not specified.
 #if defined(__EMSCRIPTEN__) && !defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) && !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
 #include <emscripten/version.h>
-
-#ifdef __EMSCRIPTEN_MAJOR__
-#if (__EMSCRIPTEN_MAJOR__ >= 5) || ((__EMSCRIPTEN_MAJOR__ >= 4) && (__EMSCRIPTEN_MINOR__ >= 0) && (__EMSCRIPTEN_TINY__ >= 10))
 #define IMGUI_IMPL_WEBGPU_BACKEND_DAWN
-#else
-#define IMGUI_IMPL_WEBGPU_BACKEND_WGPU
-#endif
-#else
-#if (__EMSCRIPTEN_major__ >= 4) && (__EMSCRIPTEN_minor__ >= 0) && (__EMSCRIPTEN_tiny__ >= 10)
-#define IMGUI_IMPL_WEBGPU_BACKEND_DAWN
-#else
-#define IMGUI_IMPL_WEBGPU_BACKEND_WGPU
-#endif
-#endif
 #endif
 
 #include <webgpu/webgpu.h>
diff --git a/examples/example_glfw_wgpu/CMakeLists.txt b/examples/example_glfw_wgpu/CMakeLists.txt
index 86291f9..f1951cb 100644
--- a/examples/example_glfw_wgpu/CMakeLists.txt
+++ b/examples/example_glfw_wgpu/CMakeLists.txt
@@ -52,23 +52,15 @@
 )
 
 if(EMSCRIPTEN)
-    if(NOT IMGUI_EMSCRIPTEN_WEBGPU_FLAG) # if IMGUI_EMSCRIPTEN_WEBGPU_FLAG not used, set by current EMSCRIPTEN version
-        if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "4.0.10")
-            set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "--use-port=emdawnwebgpu" CACHE STRING "Choose between --use-port=emdawnwebgpu (Dawn implementation of EMSCRIPTEN) and -sUSE_WEBGPU=1 (WGPU implementation of EMSCRIPTEN, deprecated in 4.0.10): default to --use-port=emdawnwebgpu for EMSCRIPTEN >= 4.0.10")
-        else()
-            set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "-sUSE_WEBGPU=1" CACHE STRING "Use -sUSE_WEBGPU=1 for EMSCRIPTEN WGPU implementation")
-        endif()
-    else() # if IMGUI_EMSCRIPTEN_WEBGPU_FLAG used, check correct version
-        if(EMSCRIPTEN_VERSION VERSION_LESS "4.0.10" AND "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}" MATCHES "emdawnwebgpu")
-            # it's necessary EMSCRIPTEN >= v4.0.10 (although "--use-port=path/to/emdawnwebgpu.port.py" is supported/tested from v4.0.8)
-            message(FATAL_ERROR "emdawnwebgpu needs EMSCRIPTEN version >= 4.0.10")
-        endif()
+    if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "4.0.10")
+        set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "--use-port=emdawnwebgpu" CACHE STRING "Default to --use-port=emdawnwebgpu. You can override to provide your own local port.")
+    else()
+        message(FATAL_ERROR "emdawnwebgpu needs EMSCRIPTEN version >= 4.0.10")
     endif()
 
-    if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "3.1.57")
+    if(NOT IMGUI_EMSCRIPTEN_GLFW3)
+        # Defaults to contrib.glfw3 because Emscripten version is > 3.1.57
         set(IMGUI_EMSCRIPTEN_GLFW3 "--use-port=contrib.glfw3" CACHE STRING "Choose between --use-port=contrib.glfw3 and -sUSE_GLFW=3 for GLFW implementation (default to --use-port=contrib.glfw3)")
-    else() # cannot use contrib.glfw3 prior to 3.1.57
-        set(IMGUI_EMSCRIPTEN_GLFW3 "-sUSE_GLFW=3" CACHE STRING "Use -sUSE_GLFW=3 for GLFW implementation" FORCE)
     endif()
 
     set(LIBRARIES glfw)
@@ -165,7 +157,6 @@
 # In this example IMGUI_IMPL_WEBGPU_BACKEND_DAWN / IMGUI_IMPL_WEBGPU_BACKEND_WGPU internal define is set according to:
 #   EMSCRIPTEN: by used FLAG
 #     --use-port=emdawnwebgpu --> IMGUI_IMPL_WEBGPU_BACKEND_DAWN defined
-#     -sUSE_WEBGPU=1          --> IMGUI_IMPL_WEBGPU_BACKEND_WGPU defined
 #   NATIVE: by used SDK installation directory
 #     if IMGUI_DAWN_DIR is valid --> IMGUI_IMPL_WEBGPU_BACKEND_DAWN defined
 #     if IMGUI_WGPU_DIR is valid --> IMGUI_IMPL_WEBGPU_BACKEND_WGPU defined
@@ -191,12 +182,8 @@
     endif()
     message(STATUS "Using ${IMGUI_EMSCRIPTEN_GLFW3} GLFW implementation")
 
-    if("${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}" MATCHES "emdawnwebgpu")
-        target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}")
-        target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_DAWN")
-    else()
-        target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_WGPU")
-    endif()
+    target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}")
+    target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_DAWN")
     message(STATUS "Using ${IMGUI_EMSCRIPTEN_WEBGPU_FLAG} WebGPU implementation")
 
     target_link_options(${IMGUI_EXECUTABLE} PRIVATE
diff --git a/examples/example_glfw_wgpu/Makefile.emscripten b/examples/example_glfw_wgpu/Makefile.emscripten
index 8fee2fc..6af61e7 100644
--- a/examples/example_glfw_wgpu/Makefile.emscripten
+++ b/examples/example_glfw_wgpu/Makefile.emscripten
@@ -40,11 +40,7 @@
 LDFLAGS += -s NO_EXIT_RUNTIME=0
 LDFLAGS += -s ASSERTIONS=1
 
-# (1) Using legacy WebGPU implementation (Emscripten < 4.0.10)
-#EMS += -DIMGUI_IMPL_WEBGPU_BACKEND_WGPU
-#LDFLAGS += -s USE_WEBGPU=1
-
-# or (2) Using newer Dawn-based WebGPU port (Emscripten >= 4.0.10)
+# Using Dawn-based WebGPU port (requires Emscripten >= 4.0.10)
 EMS += --use-port=emdawnwebgpu
 LDFLAGS += --use-port=emdawnwebgpu
 
diff --git a/examples/example_glfw_wgpu/README.md b/examples/example_glfw_wgpu/README.md
index 04320d2..cee6b8c 100644
--- a/examples/example_glfw_wgpu/README.md
+++ b/examples/example_glfw_wgpu/README.md
@@ -60,12 +60,7 @@
 CMake checks the EMSCRIPEN version then:
    - if EMS >= 4.0.10 uses `--use-port=emdawnwebgpu` flag to build  
       - it set `IMGUI_IMPL_WEBGPU_BACKEND_DAWN` compiler define 
-   - if EMS < 4.0.10 uses `-sUSE_WEBGPU=1` flag to build
-      - it set `IMGUI_IMPL_WEBGPU_BACKEND_WGPU` compiler define 
-
-#### Generate Emscripten forcing `-sUSE_WEBGPU=1` deprecated flag even with EMS >= 4.0.10
-- `emcmake cmake -G Ninja -DIMGUI_EMSCRIPTEN_WEBGPU_FLAG="-sUSE_WEBGPU=1" -B where_to_build_dir`
-   - it set `IMGUI_IMPL_WEBGPU_BACKEND_WGPU` compiler define 
+   - if EMS < 4.0.10 the build aborts (`-sUSE_WEBGPU=1` is no longer supported in ImGui)
 
 #### Generate Emscripten using external WebGPU library (emdawnwebgpu_pkg)
 - `emcmake cmake -G Ninja -DIMGUI_EMSCRIPTEN_WEBGPU_FLAG="--use-port=path_to_emdawnwebgpu_pkg" -B where_to_build_dir`
diff --git a/examples/example_glfw_wgpu/main.cpp b/examples/example_glfw_wgpu/main.cpp
index f77314b..eda4243 100644
--- a/examples/example_glfw_wgpu/main.cpp
+++ b/examples/example_glfw_wgpu/main.cpp
@@ -19,9 +19,6 @@
 #ifdef __EMSCRIPTEN__
 #include <emscripten.h>
 #include <emscripten/html5.h>
-#if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
-#include <emscripten/html5_webgpu.h>
-#endif
 #include "../libs/emscripten/emscripten_mainloop_stub.h"
 #endif
 
diff --git a/examples/example_sdl2_wgpu/CMakeLists.txt b/examples/example_sdl2_wgpu/CMakeLists.txt
index ae0d626..c2c4509 100644
--- a/examples/example_sdl2_wgpu/CMakeLists.txt
+++ b/examples/example_sdl2_wgpu/CMakeLists.txt
@@ -52,17 +52,10 @@
 )
 
 if(EMSCRIPTEN)
-    if(NOT IMGUI_EMSCRIPTEN_WEBGPU_FLAG) # if IMGUI_EMSCRIPTEN_WEBGPU_FLAG not used, set by current EMSCRIPTEN version
-        if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "4.0.10")
-            set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "--use-port=emdawnwebgpu" CACHE STRING "Choose between --use-port=emdawnwebgpu (Dawn implementation of EMSCRIPTEN) and -sUSE_WEBGPU=1 (WGPU implementation of EMSCRIPTEN, deprecated in 4.0.10): default to --use-port=emdawnwebgpu for EMSCRIPTEN >= 4.0.10")
-        else()
-            set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "-sUSE_WEBGPU=1" CACHE STRING "Use -sUSE_WEBGPU=1 for EMSCRIPTEN WGPU implementation")
-        endif()
-    else() # if IMGUI_EMSCRIPTEN_WEBGPU_FLAG used, check correct version
-        if(EMSCRIPTEN_VERSION VERSION_LESS "4.0.10" AND "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}" MATCHES "emdawnwebgpu")
-            # it's necessary EMSCRIPTEN >= v4.0.10 (although "--use-port=path/to/emdawnwebgpu.port.py" is supported/tested from v4.0.8)
-            message(FATAL_ERROR "emdawnwebgpu needs EMSCRIPTEN version >= 4.0.10")
-        endif()
+    if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "4.0.10")
+        set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "--use-port=emdawnwebgpu" CACHE STRING "Default to --use-port=emdawnwebgpu. You can override to provide your own local port.")
+    else()
+        message(FATAL_ERROR "emdawnwebgpu needs EMSCRIPTEN version >= 4.0.10")
     endif()
 
     add_compile_options(-sDISABLE_EXCEPTION_CATCHING=1 -DIMGUI_DISABLE_FILE_FUNCTIONS=1)
@@ -160,7 +153,6 @@
 # IMGUI_IMPL_WEBGPU_BACKEND_DAWN/WGPU internal define is set according to:
 #   EMSCRIPTEN: by used FLAG
 #     --use-port=emdawnwebgpu --> IMGUI_IMPL_WEBGPU_BACKEND_DAWN enabled (+EMSCRIPTEN)
-#     -sUSE_WEBGPU=1          --> IMGUI_IMPL_WEBGPU_BACKEND_WGPU enabled (+EMSCRIPTEN)
 #   NATIVE: by used SDK installation directory
 #     if IMGUI_DAWN_DIR is valid --> IMGUI_IMPL_WEBGPU_BACKEND_DAWN enabled
 #     if IMGUI_WGPU_DIR is valid --> IMGUI_IMPL_WEBGPU_BACKEND_WGPU enabled
@@ -180,12 +172,8 @@
 else() # Emscripten settings
     set(CMAKE_EXECUTABLE_SUFFIX ".html")
 
-    if("${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}" MATCHES "emdawnwebgpu")
-        target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}")
-        target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_DAWN")
-    else()
-        target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_WGPU")
-    endif()
+    target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}")
+    target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_DAWN")
     message(STATUS "Using ${IMGUI_EMSCRIPTEN_WEBGPU_FLAG} WebGPU implementation")
 
     target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "-sUSE_SDL=2")
diff --git a/examples/example_sdl2_wgpu/Makefile.emscripten b/examples/example_sdl2_wgpu/Makefile.emscripten
index 69bcb00..9c5533c 100644
--- a/examples/example_sdl2_wgpu/Makefile.emscripten
+++ b/examples/example_sdl2_wgpu/Makefile.emscripten
@@ -40,11 +40,7 @@
 LDFLAGS += -s NO_EXIT_RUNTIME=0
 LDFLAGS += -s ASSERTIONS=1
 
-# (1) Using legacy WebGPU implementation (Emscripten < 4.0.10)
-#EMS += -DIMGUI_IMPL_WEBGPU_BACKEND_WGPU
-#LDFLAGS += -s USE_WEBGPU=1
-
-# or (2) Using newer Dawn-based WebGPU port (Emscripten >= 4.0.10)
+# Using Dawn-based WebGPU port (requires Emscripten >= 4.0.10)
 EMS += --use-port=emdawnwebgpu
 LDFLAGS += --use-port=emdawnwebgpu
 
diff --git a/examples/example_sdl2_wgpu/README.md b/examples/example_sdl2_wgpu/README.md
index afba7b8..7c88cc6 100644
--- a/examples/example_sdl2_wgpu/README.md
+++ b/examples/example_sdl2_wgpu/README.md
@@ -60,12 +60,7 @@
 CMake checks the EMSCRIPEN version then:
    - if EMS >= 4.0.10 uses `--use-port=emdawnwebgpu` flag to build  
       - it set `IMGUI_IMPL_WEBGPU_BACKEND_DAWN` compiler define 
-   - if EMS < 4.0.10 uses `-sUSE_WEBGPU=1` flag to build
-      - it set `IMGUI_IMPL_WEBGPU_BACKEND_WGPU` compiler define 
-
-#### Generate Emscripten forcing `-sUSE_WEBGPU=1` deprecated flag even with EMS >= 4.0.10
-- `emcmake cmake -G Ninja -DIMGUI_EMSCRIPTEN_WEBGPU_FLAG="-sUSE_WEBGPU=1" -B where_to_build_dir`
-   - it set `IMGUI_IMPL_WEBGPU_BACKEND_WGPU` compiler define 
+   - if EMS < 4.0.10 the build aborts (`-sUSE_WEBGPU=1` is no longer supported in ImGui)
 
 #### Generate Emscripten using external WebGPU library (emdawnwebgpu_pkg)
 - `emcmake cmake -G Ninja -DIMGUI_EMSCRIPTEN_WEBGPU_FLAG="--use-port=path_to_emdawnwebgpu_pkg" -B where_to_build_dir`
diff --git a/examples/example_sdl2_wgpu/main.cpp b/examples/example_sdl2_wgpu/main.cpp
index 66bd770..413097a 100644
--- a/examples/example_sdl2_wgpu/main.cpp
+++ b/examples/example_sdl2_wgpu/main.cpp
@@ -18,9 +18,6 @@
 #ifdef __EMSCRIPTEN__
 #include <emscripten.h>
 #include <emscripten/html5.h>
-#if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
-#include <emscripten/html5_webgpu.h>
-#endif
 #include "../libs/emscripten/emscripten_mainloop_stub.h"
 #endif
 
diff --git a/examples/example_sdl3_wgpu/CMakeLists.txt b/examples/example_sdl3_wgpu/CMakeLists.txt
index 2f3d48f..6e41882 100644
--- a/examples/example_sdl3_wgpu/CMakeLists.txt
+++ b/examples/example_sdl3_wgpu/CMakeLists.txt
@@ -55,18 +55,8 @@
     if(EMSCRIPTEN_VERSION VERSION_LESS "4.0.15")
         message(FATAL_ERROR "Using Emscripten with SDL3 needs Emscripten version >= 4.0.15")
     endif()
-    if(NOT IMGUI_EMSCRIPTEN_WEBGPU_FLAG) # if IMGUI_EMSCRIPTEN_WEBGPU_FLAG not used, set by current EMSCRIPTEN version
-        if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "4.0.10")
-            set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "--use-port=emdawnwebgpu" CACHE STRING "Choose between --use-port=emdawnwebgpu (Dawn implementation of EMSCRIPTEN) and -sUSE_WEBGPU=1 (WGPU implementation of EMSCRIPTEN, deprecated in 4.0.10): default to --use-port=emdawnwebgpu for EMSCRIPTEN >= 4.0.10")
-        else()
-            set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "-sUSE_WEBGPU=1" CACHE STRING "Use -sUSE_WEBGPU=1 for EMSCRIPTEN WGPU implementation")
-        endif()
-    else() # if IMGUI_EMSCRIPTEN_WEBGPU_FLAG used, check correct version
-        if(EMSCRIPTEN_VERSION VERSION_LESS "4.0.10" AND "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}" MATCHES "emdawnwebgpu")
-            # it's necessary EMSCRIPTEN >= v4.0.10 (although "--use-port=path/to/emdawnwebgpu.port.py" is supported/tested from v4.0.8)
-            message(FATAL_ERROR "emdawnwebgpu needs EMSCRIPTEN version >= 4.0.10")
-        endif()
-    endif()
+    # emdawnwebgpu was introduced in 4.0.10 so, due to the prior requirement, this will work
+    set(IMGUI_EMSCRIPTEN_WEBGPU_FLAG "--use-port=emdawnwebgpu" CACHE STRING "Default to --use-port=emdawnwebgpu. You can override to provide your own local port.")
 
     add_compile_options(-sDISABLE_EXCEPTION_CATCHING=1 -DIMGUI_DISABLE_FILE_FUNCTIONS=1)
 else() # Native/Desktop build
@@ -162,7 +152,6 @@
 # IMGUI_IMPL_WEBGPU_BACKEND_DAWN/WGPU internal define is set according to:
 #   EMSCRIPTEN: by used FLAG
 #     --use-port=emdawnwebgpu --> IMGUI_IMPL_WEBGPU_BACKEND_DAWN enabled (+EMSCRIPTEN)
-#     -sUSE_WEBGPU=1          --> IMGUI_IMPL_WEBGPU_BACKEND_WGPU enabled (+EMSCRIPTEN)
 #   NATIVE: by used SDK installation directory
 #     if IMGUI_DAWN_DIR is valid --> IMGUI_IMPL_WEBGPU_BACKEND_DAWN enabled
 #     if IMGUI_WGPU_DIR is valid --> IMGUI_IMPL_WEBGPU_BACKEND_WGPU enabled
@@ -182,12 +171,8 @@
 else() # Emscripten settings
     set(CMAKE_EXECUTABLE_SUFFIX ".html")
 
-    if("${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}" MATCHES "emdawnwebgpu")
-        target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}")
-        target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_DAWN")
-    else()
-        target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_WGPU")
-    endif()
+    target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "${IMGUI_EMSCRIPTEN_WEBGPU_FLAG}")
+    target_compile_definitions(${IMGUI_EXECUTABLE} PUBLIC "IMGUI_IMPL_WEBGPU_BACKEND_DAWN")
     message(STATUS "Using ${IMGUI_EMSCRIPTEN_WEBGPU_FLAG} WebGPU implementation")
 
     target_compile_options(${IMGUI_EXECUTABLE} PUBLIC "-sUSE_SDL=3")
diff --git a/examples/example_sdl3_wgpu/Makefile.emscripten b/examples/example_sdl3_wgpu/Makefile.emscripten
index 58639a1..ee2ef8c 100644
--- a/examples/example_sdl3_wgpu/Makefile.emscripten
+++ b/examples/example_sdl3_wgpu/Makefile.emscripten
@@ -40,11 +40,7 @@
 LDFLAGS += -s NO_EXIT_RUNTIME=0
 LDFLAGS += -s ASSERTIONS=1
 
-# (1) Using legacy WebGPU implementation (Emscripten < 4.0.10)
-#EMS += -DIMGUI_IMPL_WEBGPU_BACKEND_WGPU
-#LDFLAGS += -s USE_WEBGPU=1
-
-# or (2) Using newer Dawn-based WebGPU port (Emscripten >= 4.0.10)
+# Using Dawn-based WebGPU port (requires Emscripten >= 4.0.10)
 EMS += --use-port=emdawnwebgpu
 LDFLAGS += --use-port=emdawnwebgpu
 
diff --git a/examples/example_sdl3_wgpu/README.md b/examples/example_sdl3_wgpu/README.md
index 35857be..5c44df3 100644
--- a/examples/example_sdl3_wgpu/README.md
+++ b/examples/example_sdl3_wgpu/README.md
@@ -60,12 +60,7 @@
 CMake checks the EMSCRIPEN version then:
    - if EMS >= 4.0.10 uses `--use-port=emdawnwebgpu` flag to build  
       - it set `IMGUI_IMPL_WEBGPU_BACKEND_DAWN` compiler define 
-   - if EMS < 4.0.10 uses `-sUSE_WEBGPU=1` flag to build
-      - it set `IMGUI_IMPL_WEBGPU_BACKEND_WGPU` compiler define 
-
-#### Generate Emscripten forcing `-sUSE_WEBGPU=1` deprecated flag even with EMS >= 4.0.10
-- `emcmake cmake -G Ninja -DIMGUI_EMSCRIPTEN_WEBGPU_FLAG="-sUSE_WEBGPU=1" -B where_to_build_dir`
-   - it set `IMGUI_IMPL_WEBGPU_BACKEND_WGPU` compiler define 
+   - if EMS < 4.0.10 the build aborts (`-sUSE_WEBGPU=1` is no longer supported in ImGui)
 
 #### Generate Emscripten using external WebGPU library (emdawnwebgpu_pkg)
 - `emcmake cmake -G Ninja -DIMGUI_EMSCRIPTEN_WEBGPU_FLAG="--use-port=path_to_emdawnwebgpu_pkg" -B where_to_build_dir`
diff --git a/examples/example_sdl3_wgpu/main.cpp b/examples/example_sdl3_wgpu/main.cpp
index aa67d30..42b19b7 100644
--- a/examples/example_sdl3_wgpu/main.cpp
+++ b/examples/example_sdl3_wgpu/main.cpp
@@ -20,9 +20,6 @@
 #ifdef __EMSCRIPTEN__
 #include <emscripten.h>
 #include <emscripten/html5.h>
-#if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
-#include <emscripten/html5_webgpu.h>
-#endif
 #include "../libs/emscripten/emscripten_mainloop_stub.h"
 #endif