Skip to content

v0.1.1:版本号、发版说明和哈希 (#7)

Choose a tag to compare

@github-actions github-actions released this 08 Nov 11:31
· 13 commits to main since this release
3fa5b1d

ModAVDExtras v0.1.1

  • modavd_extras.dll:95b09e1c295f83eb4ae3f11555b6b0954f1db6f989bd669a7a2ef6d4a97ba015
  • external_renderer_ipc.dll:ae9c582e29bebacd12b66c34743775ba58a0f5271cf3ed8732e77b3137bb6f34

修正一处截图的返回值。附件照旧是 Windows x64 的两个 DLL;接口版本还是 1,头文件只改了注释,调用方不用重编。

改了什么

  • modavd_extras.dll:拷贝途中次次来新帧时,modavd_capture 返回 MODAVD_E_NOT_READY(#6)。
    • 模拟器写截图共享内存不加锁,库拷完比一下帧号,变了就重拷,连第一次最多拷 3 次。v0.1.0 里 3 次都撞上新帧也返回 MODAVD_OK,交出去的图可能是两帧拼起来的。现在返回 MODAVD_E_NOT_READY 并记一条警告,再截一次就行。
    • 没有新的出错码:MODAVD_E_NOT_READY 原来表示截图共享没开、还没有画面,现在也包括这种情况。
    • 实际很难碰到:拷一帧约 0.1 ms,模拟器约 16 ms 写一帧。
  • external_renderer_ipc.dll:行为不变。这种情况下照旧把最后一次拷贝交出去、返回成功,和它替换的 DLL 一样,因为 MaaCore 的 MuMu 那条路截图一失败就会重新测速。
  • 转换代码没动,BGR 按 16 像素一块转换的提速已在 v0.1.0 里。modavd_version_string() 返回 "0.1.1"。
  • 其余同 v0.1.0:两个 DLL 都静态链接 C 运行库,只依赖 KERNEL32、WS2_32。

许可证与源码

下载与核对

两个 DLL 由本仓库的 release workflow 在 GitHub 的 windows-2025 上编出(cmake -A x64,--config Release),和 tag 下的 release/0.1.1.SHA256SUMS.txt 核对过才上传。请用附件 SHA256SUMS.txt 核对,例如在 PowerShell 里运行 Get-FileHash .\modavd_extras.dll -Algorithm SHA256。编译带 /Brepro:用同样的命令、同一版本的 MSVC 和 Windows SDK 编,能得到相同的字节。MSVC 版本在 workflow 日志里 CMake 配置那一步能看到,Windows SDK 跟着 runner 镜像,镜像版本在「Set up job」那一步。

English

A fix to one capture return value. As before, the release attaches the two Windows x64 DLLs; the API version is still 1 and only comments changed in the header, so callers need not rebuild.

  • modavd_extras.dll: modavd_capture returns MODAVD_E_NOT_READY when a new frame arrives during every copy (#6). The emulator writes the frame-sharing memory without a lock, so the library compares the frame number around each copy and copies again when it changed, up to 3 copies in all. In v0.1.0 it returned MODAVD_OK even when all 3 copies were overtaken, and the frame handed back could mix two frames. It now returns MODAVD_E_NOT_READY and logs a warning; call again. There is no new error code: MODAVD_E_NOT_READY already meant frame sharing is off or no frame was composed yet, and now covers this case too. It is rare in practice: a copy takes about 0.1 ms and the emulator writes a frame about every 16 ms.
  • external_renderer_ipc.dll: unchanged behaviour. In this case it still hands over the last copy and returns success, as the DLL it replaces did, because MaaCore's MuMu path drops back to its screencap speed test after a failed capture.
  • The conversion code is unchanged; the 16-pixel BGR conversion is already in v0.1.0. modavd_version_string() returns "0.1.1".
  • Everything else is as in v0.1.0: both DLLs link the C runtime statically and depend only on KERNEL32 and WS2_32.
  • License: LGPL-3.0-or-later; the texts are LICENSE (LGPL-3.0) and COPYING (GPL-3.0) at the tag. Ship them with the DLLs. Source: https://github.com/ModAVD/ModAVDExtras/tree/v0.1.1.
  • The DLLs are built by this repository's release workflow on GitHub's windows-2025 (cmake -A x64, --config Release) and checked against release/0.1.1.SHA256SUMS.txt at the tag before upload. Check them with the attached SHA256SUMS.txt. The build uses /Brepro: the same commands with the same MSVC and Windows SDK versions give the same bytes. The MSVC version shows in the CMake configure step of the workflow log; the Windows SDK comes with the runner image, whose version shows in the "Set up job" step.