xfangfang / wiliwili

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

关于测试版全屏功能F快捷键,是否考虑播放器铺满窗口/窗口无边框全屏/显示器全屏可选。 #324

Closed hinum009 closed 1 week ago

hinum009 commented 2 months ago

目前F键全屏是显示器全屏,在win11下切换时会导致屏幕闪烁似乎在分辨率切换,是否考虑功能可选。 F ===bug修复======= ->播放器铺满窗口 ->窗口化全屏无边框 ->设置分辨率全屏 ===功能扩展======= ----->>分辨率,长宽比... ->关灯模式(窗口外部分加深色遮罩) ----->>是否包含任务栏 ->迷你模式 ----->>隐藏ui仅播放器

xfangfang commented 2 months ago

关于全屏的反馈已经有很多了。但是涉及到 wiliwili 目前使用的全屏方式,每次大家都会告诉我一个新的名词,所以我也搞不清wiliwili 现在究竟用的什么全屏模式了。

为了能在全屏时显示出来输入法,特殊地做了一些调整,具体做法是在全屏时,窗口高度增加了一像素。

以我自己的设备(win10/win11都测试过)来看是没有任何问题的,如果存在问题可能和显卡驱动,显示器等都有关系,这个就需要大家来看看了。

可以在本地编译 GLFW 的测试来验证,这个是相关提交: https://github.com/xfangfang/glfw/commit/ad2ab6da7a56a4eaa2369ff6c8b4ca77ee30dc99

这个是目前使用的GLFW版本:https://github.com/xfangfang/glfw/tree/wiliwili_3_4_macos_srgb

这里是涉及到的特殊修改开启的位置:https://github.com/xfangfang/borealis/blob/bdcb775970dd350d6517ac7741b56a7bee78295f/library/lib/platforms/glfw/glfw_video.cpp#L246


至于加一些新的全屏模式,我感觉这会让应用看起来过于复杂,除非有一些很好的方式可以将这些选项融入到应用的各个部分,不然我还是倾向于尽量简化应用的功能。

hinum009 commented 2 months ago

关于全屏的反馈已经有很多了。但是涉及到 wiliwili 目前使用的全屏方式,每次大家都会告诉我一个新的名词,所以我也搞不清wiliwili 现在究竟用的什么全屏模式了。

为了能在全屏时显示出来输入法,特殊地做了一些调整,具体做法是在全屏时,窗口高度增加了一像素。

以我自己的设备(win10/win11都测试过)来看是没有任何问题的,如果存在问题可能和显卡驱动,显示器等都有关系,这个就需要大家来看看了。

毕业以后在搬砖,c基本忘光了,苦笑 vm测试了一下,应该和系统版本以及显卡驱动有关,他会先切换回mfc的,截图帧数不够,实机会闪几下才完成全屏。 wiliwili测试版全屏闪烁_vm 简单绑定思路,f可选显示器铺满窗口 简单修复思路,f键可选现有全屏或者绑定到这个按钮上。

hinum009 commented 2 months ago

image 闪烁的版本1.30使用的opengl image 发行版1.4用的D3D11没有闪烁的问题

xfangfang commented 2 months ago

那很有可能是显卡驱动支持的问题了,毕竟这两个版本的唯一区别就是切换了图形api

hinum009 commented 2 months ago

那很有可能是显卡驱动支持的问题了,毕竟这两个版本的唯一区别就是切换了图形api

image

相关链接

还是全屏使用了独占全屏或者监视器全屏的问题,游戏程式这样处理性能会好一丢丢,播放器还是最大化窗口无边框,不切换窗口模式和全屏模式的显示逻辑,兼容性比较好。

xfangfang commented 2 months ago

我对windows下的这些全屏方案完全不了解,现在最简单的做法就是某人可以提交一个pr,然后大家测试一番,如果发现效果不错,然后我就可以合并进来。

如果只有openGL存在问题,那就可以忽视了,现在d3d11版功能和openGL完全一致,性能还更好。

xfangfang commented 1 week ago

因为这个issue和d3d没什么关系,所以我先关闭啦。推荐使用d3d版本,opengl版可以用于部分老旧设备来用。