From 96d9359a0b36d5a8a6e1d3ebe34c2ddb05049052 Mon Sep 17 00:00:00 2001 From: FarnaHerry Date: Fri, 4 Sep 2026 11:46:43 +0800 Subject: [PATCH 1/2] feat(eui-neo): add 0.5.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CORE_SOURCES gains exactly one TU — core/render/image_stream.cpp, the new dynamic-texture surface (CPU-side pixel upload, e.g. decoded video frames). It is self-contained (its own header plus the STL), so the descriptor's sources go 25 → 26 and nothing else moves: 3rd/ is byte-identical, the tray bridge and window/input backends are unchanged, and deps/features/flags all carry over. The remaining upstream changes are backend internals for the new surface (opengl and vulkan image/upload paths, both shader sets), an off-by-default EUI_APP_RUNNER umbrella-main variant aimed at xmake-repo packaging, and an FFmpeg example behind EUI_BUILD_FFMPEG_VIDEO_EXAMPLE — all outside this package's source list. -fno-char8_t is still required: platform.cpp/shadertoy_json.cpp/ image_source.cpp still return path::u8string() as std::string. No CN mirror yet (never published to mcpp-res); same GLOBAL+CN entry shape as 0.5.7. sha256 derived from the tag tarball. All seven workspace members bumped to 0.5.8 and verified locally with mcpp 2026.9.4.1 (parse OK, lint green; eui-neo, eui-neo-window, eui-neo-app-main, eui-neo-markdown, eui-neo-vulkan, eui-neo-sdl2 and eui-neo-tray all pass — 549s total). --- pkgs/e/compat.eui-neo.lua | 38 +++++++++++++++++++++-- tests/examples/eui-neo-app-main/mcpp.toml | 2 +- tests/examples/eui-neo-markdown/mcpp.toml | 2 +- tests/examples/eui-neo-sdl2/mcpp.toml | 2 +- tests/examples/eui-neo-tray/mcpp.toml | 2 +- tests/examples/eui-neo-vulkan/mcpp.toml | 2 +- tests/examples/eui-neo-window/mcpp.toml | 2 +- tests/examples/eui-neo/mcpp.toml | 2 +- 8 files changed, 43 insertions(+), 9 deletions(-) diff --git a/pkgs/e/compat.eui-neo.lua b/pkgs/e/compat.eui-neo.lua index 240e5b64..b2b1bb8b 100644 --- a/pkgs/e/compat.eui-neo.lua +++ b/pkgs/e/compat.eui-neo.lua @@ -15,7 +15,7 @@ -- genuinely vendored single-file headers live at its root (stb_image, -- nanosvg, nanosvgrast) and the sources include them as `"3rd/stb_image.h"`. -- --- The build recipe below tracks upstream `CMakeLists.txt` (v0.5.7): CORE_SOURCES +-- The build recipe below tracks upstream `CMakeLists.txt` (v0.5.8): CORE_SOURCES -- plus the OpenGL backend and, for the glfw window backend, `ime_bridge.c`. -- 0.5.5 grew a Shadertoy subsystem: render_backend.h and include/eui/types.h now -- include core/render/shadertoy.h unconditionally, and opengl_backend.cpp calls @@ -37,8 +37,19 @@ -- as before, and the x11_*.cpp / tray-gio pieces are not in CORE_SOURCES. -- The new `EUI_ENABLE_TRAY` option does not affect this package either. -- +-- 0.5.8: CORE_SOURCES gains exactly one TU — `core/render/image_stream.cpp`, +-- the new dynamic-texture (CPU-side pixel upload, e.g. decoded video frames) +-- surface. It is self-contained (its own header plus the STL), and the rest of +-- the release is backend internals for it (opengl/vulkan image/upload paths, +-- both backends' shaders), a new `EUI_APP_RUNNER` umbrella-main variant aimed +-- at the xmake-repo packaging (off by default, irrelevant here), and an +-- FFmpeg-based EXAMPLE behind `EUI_BUILD_FFMPEG_VIDEO_EXAMPLE` — app-level, +-- not part of the lib. `3rd/`, the tray bridge, the window/input backends and +-- both app-main TUs' source lists are unchanged, so deps/features/flags all +-- carry over. +-- -- All `mcpp` paths are GLOBS relative to the verdir; the leading `*/` absorbs --- the GitHub tarball's `EUI-NEO-0.5.7/` wrap layer. +-- the GitHub tarball's `EUI-NEO-0.5.8/` wrap layer. package = { spec = "1", namespace = "compat", @@ -113,6 +124,14 @@ package = { CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.7/eui-neo-0.5.7.tar.gz" }, sha256 = "2d3ec0a36e34b98d13dbdaf67afa4fe178cb4b52841eb17529517cb48be43551", }, + -- 0.5.8 has no CN mirror yet either (never published to mcpp-res); + -- same fallback as 0.5.7. Flip to a real mirror if it gets one — + -- sha256 stays the same. + ["0.5.8"] = { + url = { GLOBAL = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", + CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.8/eui-neo-0.5.8.tar.gz" }, + sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", + }, }, macosx = { ["0.5.3"] = { @@ -138,6 +157,12 @@ package = { CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.7/eui-neo-0.5.7.tar.gz" }, sha256 = "2d3ec0a36e34b98d13dbdaf67afa4fe178cb4b52841eb17529517cb48be43551", }, + -- 0.5.8: see the linux block — no CN mirror yet, same fallback. + ["0.5.8"] = { + url = { GLOBAL = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", + CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.8/eui-neo-0.5.8.tar.gz" }, + sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", + }, }, windows = { ["0.5.3"] = { @@ -163,6 +188,12 @@ package = { CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.7/eui-neo-0.5.7.tar.gz" }, sha256 = "2d3ec0a36e34b98d13dbdaf67afa4fe178cb4b52841eb17529517cb48be43551", }, + -- 0.5.8: see the linux block — no CN mirror yet, same fallback. + ["0.5.8"] = { + url = { GLOBAL = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", + CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.8/eui-neo-0.5.8.tar.gz" }, + sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", + }, }, }, @@ -229,6 +260,9 @@ package = { "*/core/platform/tray_bridge.c", -- Render layer (backend-agnostic) "*/core/render/image.cpp", + -- 0.5.8: the dynamic-texture surface (CPU-side pixel upload). Self- + -- contained — its own header plus the STL; no new dep. + "*/core/render/image_stream.cpp", "*/core/render/image_facade.cpp", "*/core/render/image_source.cpp", "*/core/render/primitive.cpp", diff --git a/tests/examples/eui-neo-app-main/mcpp.toml b/tests/examples/eui-neo-app-main/mcpp.toml index db6d9513..a79a17ae 100644 --- a/tests/examples/eui-neo-app-main/mcpp.toml +++ b/tests/examples/eui-neo-app-main/mcpp.toml @@ -30,4 +30,4 @@ name = "eui-neo-app-main-tests" version = "0.1.0" [dependencies.compat] -eui-neo = { version = "0.5.7", features = ["app-main"] } +eui-neo = { version = "0.5.8", features = ["app-main"] } diff --git a/tests/examples/eui-neo-markdown/mcpp.toml b/tests/examples/eui-neo-markdown/mcpp.toml index 8aac9876..094d1fb5 100644 --- a/tests/examples/eui-neo-markdown/mcpp.toml +++ b/tests/examples/eui-neo-markdown/mcpp.toml @@ -7,4 +7,4 @@ version = "0.1.0" # what switches components/markdown.h from its fallback to the real parser. [dependencies.compat] -eui-neo = { version = "0.5.7", features = ["markdown"] } +eui-neo = { version = "0.5.8", features = ["markdown"] } diff --git a/tests/examples/eui-neo-sdl2/mcpp.toml b/tests/examples/eui-neo-sdl2/mcpp.toml index edcbe4a3..ec9c182e 100644 --- a/tests/examples/eui-neo-sdl2/mcpp.toml +++ b/tests/examples/eui-neo-sdl2/mcpp.toml @@ -7,4 +7,4 @@ version = "0.1.0" # into a real libcurl-backed implementation. The render backend stays OpenGL, # unnamed — naming a feature no longer costs you the defaults. [dependencies.compat] -eui-neo = { version = "0.5.7", features = ["sdl2", "network"] } +eui-neo = { version = "0.5.8", features = ["sdl2", "network"] } diff --git a/tests/examples/eui-neo-tray/mcpp.toml b/tests/examples/eui-neo-tray/mcpp.toml index 7a2a440d..f905bc04 100644 --- a/tests/examples/eui-neo-tray/mcpp.toml +++ b/tests/examples/eui-neo-tray/mcpp.toml @@ -25,4 +25,4 @@ name = "eui-neo-tray-tests" version = "0.1.0" [dependencies.compat] -eui-neo = "0.5.7" +eui-neo = "0.5.8" diff --git a/tests/examples/eui-neo-vulkan/mcpp.toml b/tests/examples/eui-neo-vulkan/mcpp.toml index 343557f9..f282b528 100644 --- a/tests/examples/eui-neo-vulkan/mcpp.toml +++ b/tests/examples/eui-neo-vulkan/mcpp.toml @@ -6,7 +6,7 @@ version = "0.1.0" # package resolves the exclusive choice in its own preprocessor from the # MCPP_FEATURE_* flags. The window backend stays GLFW, unnamed. [dependencies.compat] -eui-neo = { version = "0.5.7", features = ["vulkan"] } +eui-neo = { version = "0.5.8", features = ["vulkan"] } [build] cxxflags = ["-DHAVE_EUI_VULKAN=1"] diff --git a/tests/examples/eui-neo-window/mcpp.toml b/tests/examples/eui-neo-window/mcpp.toml index 0da88d6b..22d8c765 100644 --- a/tests/examples/eui-neo-window/mcpp.toml +++ b/tests/examples/eui-neo-window/mcpp.toml @@ -34,4 +34,4 @@ name = "eui-neo-window-tests" version = "0.1.0" [dependencies.compat] -eui-neo = "0.5.7" +eui-neo = "0.5.8" diff --git a/tests/examples/eui-neo/mcpp.toml b/tests/examples/eui-neo/mcpp.toml index 8d6aec77..e30e58f4 100644 --- a/tests/examples/eui-neo/mcpp.toml +++ b/tests/examples/eui-neo/mcpp.toml @@ -3,4 +3,4 @@ name = "eui-neo-tests" version = "0.1.0" [dependencies.compat] -eui-neo = "0.5.7" +eui-neo = "0.5.8" From b1d1eaa98c428e6d53deed76a35a187b35d05906 Mon Sep 17 00:00:00 2001 From: FarnaHerry Date: Fri, 4 Sep 2026 11:54:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(eui-neo):=200.5.8=20as=20a=20plain-stri?= =?UTF-8?q?ng=20GLOBAL=20url=20=E2=80=94=20no=20CN=20mirror=20yet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The { GLOBAL, CN } pair pointed at a gitcode release that does not exist, and CI's mirror check probes every CN url. A plain string is exempt from that check (and falls back to upstream for CN users); the maintainer flips it to the pair when the mcpp-res mirror lands. --- pkgs/e/compat.eui-neo.lua | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pkgs/e/compat.eui-neo.lua b/pkgs/e/compat.eui-neo.lua index b2b1bb8b..c3adc2f8 100644 --- a/pkgs/e/compat.eui-neo.lua +++ b/pkgs/e/compat.eui-neo.lua @@ -124,12 +124,12 @@ package = { CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.7/eui-neo-0.5.7.tar.gz" }, sha256 = "2d3ec0a36e34b98d13dbdaf67afa4fe178cb4b52841eb17529517cb48be43551", }, - -- 0.5.8 has no CN mirror yet either (never published to mcpp-res); - -- same fallback as 0.5.7. Flip to a real mirror if it gets one — - -- sha256 stays the same. + -- 0.5.8 has no CN mirror yet (never published to mcpp-res), so it + -- is a plain-string GLOBAL url — check_mirror_urls.lua exempts + -- plain strings, and the maintainer flips it to { GLOBAL, CN } + -- when the mirror lands. sha256 stays the same. ["0.5.8"] = { - url = { GLOBAL = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", - CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.8/eui-neo-0.5.8.tar.gz" }, + url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", }, }, @@ -157,10 +157,9 @@ package = { CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.7/eui-neo-0.5.7.tar.gz" }, sha256 = "2d3ec0a36e34b98d13dbdaf67afa4fe178cb4b52841eb17529517cb48be43551", }, - -- 0.5.8: see the linux block — no CN mirror yet, same fallback. + -- 0.5.8: see the linux block — plain-string GLOBAL, no CN mirror. ["0.5.8"] = { - url = { GLOBAL = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", - CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.8/eui-neo-0.5.8.tar.gz" }, + url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", }, }, @@ -188,10 +187,9 @@ package = { CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.7/eui-neo-0.5.7.tar.gz" }, sha256 = "2d3ec0a36e34b98d13dbdaf67afa4fe178cb4b52841eb17529517cb48be43551", }, - -- 0.5.8: see the linux block — no CN mirror yet, same fallback. + -- 0.5.8: see the linux block — plain-string GLOBAL, no CN mirror. ["0.5.8"] = { - url = { GLOBAL = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", - CN = "https://gitcode.com/mcpp-res/eui-neo/releases/download/0.5.8/eui-neo-0.5.8.tar.gz" }, + url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", }, },