Commit graph

31 commits

Author SHA1 Message Date
Xu
65a92fe189 chore: 最低 26100 SDK 2025-04-05 19:42:28 +08:00
Xu
4b39d40f84
修复 Win11 24H2 中 Graphics Capture 捕获帧率无法超过 60FPS 的问题 (#1115)
* chore: 尝试使用 24h2 sdk

* fix: 尝试修复 WGC 帧率

* Revert "fix: 尝试修复 WGC 帧率"

This reverts commit 3b0b772943.

* chore: 修复 26100 SDK 导致的编译错误

* fix: 尝试修复 WGC 帧率

* chore: manifest 声明兼容 24H2

* chore: 更新编译文档和添加注释
2025-04-05 17:38:54 +08:00
Xu
7937700643
实现最小帧率 (#1043)
* feat: 初步实现最小帧率

* fix: 优化 StepTimer

* fix: 使帧间隔保持稳定

* feat: 添加最小帧率设置

* feat: 实现用户界面

* fix: 优化帧率限制精度

* chore: 添加注释

* fix: 修正第一秒的帧率

* feat: 允许用户修改最小帧率

* fix: 避免强制帧干扰重复帧检测

* fix: 修复限制最大帧率时 Graphics Capture 严重卡顿

* chore: 更好的处理卡顿以及添加注释

* fix: 默认最小帧率改为 10 FPS

* perf: MinFrameRateOptions 改为静态成员
2024-12-31 20:34:37 +08:00
Xu
8b278b4f52
将 Magpie.App.dll 合并进 Magpie.exe (#1032)
* chore: 将 Magpie.App.dll 合并进 Magpie.exe

* fix: Logger 不再需要初始化两次

* chore: 防止退出时在 threadpoolwinrt.dll 中崩溃

* chore: 优化编译

* chore: _ConanDeps 移植为 msbuild 脚本,需要进一步实现 up-to-date 检查

* chore: _ConanDeps 实现 up-to-date 检查

* chore: 由于架构更改,现在可以直接引用 Magpie.Core

* chore: 修复编译

* refactor: 将一些类移出 Shared

* chore: 将 Shared 中的文件移到 Magpie.Core

* refactor: 优化架构

* refactor: 命名空间调整

* refactor: XamlApp 合并进 App

* perf: 优化自定义事件的性能

* refactor: 使 XamlWindow 继承自 WindowBase

* refactor: 删除几个控件的 DependencyProperty

* fix: 避免 Win10 中退出后崩溃

* chore: 添加断言和注释

* refactor: 检测主题更改的逻辑集中在 App 中

* perf: 直接使用 RootPage 的实现类型

* refactor: 添加主窗口 DPI 改变事件

* refactor: 不再使用 Magpie.Core 命名空间

* fix: 修复析构全局变量时崩溃的问题

* chore: 添加注释

* perf: 更多地方直接使用实现类型

* perf: 更多地方直接使用实现类型

* chore: 避免依赖项缺少 pdb 导致链接警告

* perf: 更多地方直接使用实现类型

* fix: 修复无法更新的问题
2024-12-18 18:27:39 +08:00
Xu
ecf05baf57
引入 WIL (#894)
* chore: 引入 WIL

* chore: 引入 WIL 的错误处理

* Revert "chore: 引入 WIL 的错误处理"

This reverts commit 32d0fb25b4.

* refactor: 删除 ScopeExit,WIL 中有替代品

* refactor: 删除 ScopedHandle,WIL 中有替代品

* refactor: 删除 CSMutex 和 SRWMutex,WIL 中有替代品

* refactor: 删除 BStr,WIL 中有替代品

* chore: 不使用 WIL 的 VARIANT

* perf: 优化匹配配置文件的性能

* refactor: 删除 Win32Utils::CreateDir,改为 wil::CreateDirectoryDeepNoThrow

* refactor: 简化代码

* refactor: 简化代码

* refactor: GetModuleHandle(nullptr) 替换为 wil::GetModuleInstanceHandle

* feat: 优化获取程序路径

* refactor: 使用 wil::notify_property_changed_base 简化代码

* refactor: 添加 WinRTUtils::Event 简化创建事件的代码

* refactor: 简化代码

* refactor: 简化代码

* perf: 优化初始化时解析效果的性能

* refactor: 避免使用 <filesystem>
这使二进制文件减小了 6KB

* refactor: UpdateService 改为使用 Win32 接口写文件
1. WriteFile 非常快,没有异步的必要。
2. 不知为何有时快要下载完成时 co_await fileStream.WriteAsync(resultBuffer) 会崩溃,原因是“Layout cycle detected”,这很可能是 XAML 的 bug。

* perf: 使用 CNG 计算 MD5

* refactor: 简化代码

* fix: 修复 Win11 中打开通知区域溢出菜单导致意外终止缩放的问题

* refactor: 简化代码

* refactor: 简化代码

* refactor: 简化代码

* chore: 删除多余引用
2024-04-16 19:01:52 +08:00
Xu
ba421b5a06
多个性能优化 (#871)
* test

* perf: 优化流畅度

* chore: 修复编译警告

* test

* perf: 简化状态

* perf: 稍微优化 Renderer 的同步性能

* fix: 优化计时器精度

* fix: 优化调试模式下光标行为

* test

* chore

* perf

* fix: 错误处理
2024-04-03 19:24:43 +08:00
Xu
6f0e5ea33d fix: 修复无法缩放全屏窗口 2024-03-28 21:17:09 +08:00
Xu
b167cd1d09
优化窗口边框的裁剪 (#864)
* feat: 优化对最大化窗口的支持

* feat: 捕捉标题栏时去除边框

* feat: 非最大化的窗口自动裁剪上边框

* perf: 性能优化

* fix: 错误修复

* fix: 修复警告

* fix: 尝试修复 Graphics Capture 的捕获区域

* feat: 适配 Win11 的捕获区域

* fix: 添加检查
2024-03-28 20:59:44 +08:00
刘旭
f919666f08 fix: 修复有时退出缩放光标不立刻显示的问题
主要是拖拽窗口时
2024-03-26 09:03:23 +08:00
刘旭
4900d57c1d refactor: ScalingWindow 作为全局状态 2023-07-03 22:47:34 +08:00
刘旭
d6ef27a746 feat: 检测重复帧,和前一阵相同时不再重复渲染 2023-06-27 20:39:22 +08:00
刘旭
607ff88965 chore: 修复编译 2023-06-16 22:19:10 +08:00
刘旭
8ccf7b4d36 fix: 显示光标时重启捕获 2023-06-16 22:01:47 +08:00
刘旭
c82c0dde7e feat: 添加 CursorManager 2023-06-16 20:32:26 +08:00
刘旭
11f9f6999c feat: 初始化捕获 2023-06-11 20:57:46 +08:00
刘旭
3ed697cba0 feat: Graphics Capture 2023-06-11 20:39:29 +08:00
刘旭
a9d85dde44 chore: 删除现有代码 2023-06-05 19:39:27 +08:00
刘旭
00f0863fe4 fix: Graphics Capture 只在 Win11 中回落到屏幕捕获
Win10 中会有黄色边框
2023-03-14 20:59:37 +08:00
刘旭
51b845d384 fix: 修复存在未知效果时崩溃的问题 2023-03-04 15:32:23 +08:00
刘旭
dbedf20f34 fix: 修复部分游戏缩放后 Alt+Tab 列表中出现两个窗口的情况 2023-03-03 21:11:56 +08:00
刘旭
9aae602d45 fix: Graphics Capture 更早还原源窗口样式 2023-03-03 14:32:58 +08:00
刘旭
56aad7636d feat: 优化 Graphics Capture
1. 不再尝试删除 WS_EX_TOOLWINDOW 样式,因为 WS_EX_APPWINDOW 的优先级高于 WS_EX_TOOLWINDOW fixes #464
2. 如果改变窗口样式后捕获失败,尝试使用 ITaskbarList 添加任务栏图标,最后回落到屏幕捕获
2023-03-03 14:17:17 +08:00
刘旭
d3f1d5f80f fix: 修复与 RTSS 的兼容性
现在存在黑边时每帧渲染前都会清空后缓冲区。这在一些显卡上会降低性能,以后分离光标渲染时这里需要优化
2022-11-22 14:49:11 +08:00
刘旭
a5255e7321 fix: 修复缩放线程有几率卡死的问题 2022-11-18 21:11:16 +08:00
刘旭
e13424fbee refactor: 缩放线程更改为 STA,更改了 Graphics Capture 捕获模式的实现方式 2022-11-18 20:05:39 +08:00
刘旭
21e07884cc refactor: 优化操作系统版本检测 2022-11-12 17:11:59 +08:00
刘旭
593ead61d8 fix: 修复断言错误 2022-09-09 22:36:51 +08:00
刘旭
ada0c6d13f fix: 时间线的效果名不显示路径 2022-09-08 22:12:39 +08:00
刘旭
4ee4e82325 fix: 修复光标消失问题 2022-09-08 21:49:19 +08:00
刘旭
37e584b5d6 chore: 更新命名空间 2022-08-29 12:35:45 +08:00
刘旭
611774aef6 chore: 将 Runtime 重命名为 Magpie.Core 2022-08-29 11:56:22 +08:00
Renamed from src/Runtime/GraphicsCaptureFrameSource.cpp (Browse further)