xfangfang / wiliwili

第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上
https://xfangfang.github.io/wiliwili
GNU General Public License v3.0
3.03k stars 146 forks source link

UWP 构建报错 #259

Closed xfangfang closed 4 months ago

xfangfang commented 6 months ago

@zeromake 再次打扰,uwp的构建又出了个小问题。

原因应该是我新增了两个 nanovg 的函数,但是在uwp构建时还是用的你维护的仓库内的 nanovg 进而导致问题。

为了方便更新你那边的仓库,我将历次的 wiliwili nanovg 更新总结进了这个仓库:https://github.com/xfangfang/nanovg/tree/wiliwili

这次影响构建的主要是这两个提交:(这两个提交都和图形API无关,所以应该可以放心直接修改)

https://github.com/xfangfang/nanovg/commit/b3cacee83e4658e5c29c69ff83e19da379ed26e1

https://github.com/xfangfang/nanovg/commit/a61fd71abfcfb7cf7841e75d78f6225716eb0c27

zeromake commented 6 months ago

已经合并 https://github.com/zeromake/nanovg/commit/f45d73db67eaadc3df98971872add86f660a3ee5 ,不过 dx11 没有实现 convexFillStencil 和 convexFillStencilClear,应该是无法使用 nvgStencil 的 api,有调用示例吗,我有空移植到 dx11 和 metal 里

xfangfang commented 6 months ago

那两个api我感觉设计的不是很贴合nanovg其他的api,但是勉强能满足使用了我就也没有多调整,这里有稍微详细一点的说明:https://github.com/xfangfang/borealis/pull/40

调用示例: 这两个是用来完成弹幕智能防遮挡的,如果没有实现应该效果会和 下方代码中设置了 DEBUG_MASK 效果是一样的,main.cpp 中有方便调试的视频示例。

nvgStencil:

https://github.com/xfangfang/wiliwili/blob/a7d6ee3b5d318db84864dbc605f0528229744978/wiliwili/source/view/danmaku_core.cpp#L299-L376

nvgStencilClear:

https://github.com/xfangfang/wiliwili/blob/a7d6ee3b5d318db84864dbc605f0528229744978/wiliwili/source/view/danmaku_core.cpp#L527-L534

zeromake commented 6 months ago

https://github.com/xfangfang/wiliwili/actions/runs/7312562114/job/19940942993 这里报了两个错误,一个是 nanovg 的新 gz 包无法下载,还有一个是 pdr 库编译失败,pdr 我可以开 -vD 去看看什么问题,但是 nanovg github 怎么会下载不了……

xfangfang commented 6 months ago

可能是和缓存有关系,看起来像是dev分支直接用了yoga分支构建的缓存(或者是之前dev分支的缓存)导致的问题,我把缓存删掉重新跑了一下,现在有了不同的报错


但好像还是下载nanovg出错诶

xfangfang commented 6 months ago

我知道了,好像是这里版本对应错了: https://github.com/zeromake/xrepo/commit/19e19e08aff81c48faba18e611d545087e43252f

zeromake commented 6 months ago

应该是hash值搞错了

xfangfang commented 6 months ago

这个问题确实是版本对应错了,现在会自动拉取 2023.12.25 这个版本,但是 2023.12.25 对应的是之前的旧版代码, 2023.03.29 才是最新版,我在本地手动指定 2023.03.29 才能正常安装。

zeromake commented 6 months ago

这个问题确实是版本对应错了,现在会自动拉取 2023.12.25 这个版本,但是 2023.12.25 对应的是之前的旧版代码, 2023.03.29 才是最新版,我在本地手动指定 2023.03.29 才能正常安装。

已经改了

zeromake commented 6 months ago

@xfangfang 能编译了:https://github.com/xfangfang/wiliwili/actions/runs/7332515407/job/19971542803

xfangfang commented 6 months ago

万分感谢~

xfangfang commented 4 months ago

@zeromake

已经合并 zeromake/nanovg@f45d73d ,不过 dx11 没有实现 convexFillStencil 和 convexFillStencilClear,应该是无法使用 nvgStencil 的 api,有调用示例吗,我有空移植到 dx11 和 metal 里

dx11 的自定义模板测试做好了,下载测试:https://github.com/xfangfang/wiliwili/actions/runs/7967723379

对 nanovg 的修改在:(如果需要 uwp 也有这个功能,可能需要同步进你那边的 nanovg 仓库) https://github.com/xfangfang/borealis/commit/23048cf87ee99d88ad3aa8652f5b9c0b9d501b4dhttps://github.com/xfangfang/borealis/commit/781b55ef9bfb3ead6b7af72411a993c7106f6cfc


uwp 的构建最近一直在报错,我看了一下是依赖 glad 构建时出错了,dragonflylee 里说他在本地没办法复现出来。我对比了一下之前的 log,之前是直接下载编译好的 glad,现在是从源码编译(运行python脚本时候出错了),因为我对 xmake 不太熟悉,所以想问问你知不知道这个可能是什么原因,要怎么解决呢?

zeromake commented 4 months ago

@xfangfang 应该是 ci 的 python 库版本不太干净或者是 python 的版本无法对应,glad 用的是 xmake-repo 的默认编译走的 cmake(一样需要执行 py 脚本生成源代码),我先把 glfw 和 glad 在 uwp 模式下屏蔽了把。

glad/xmake.lua