host: split src/host/main.cpp into translation units
main.cpp (4.5k lines) -> main.cpp (entry, args, synthetic benchmark) plus vulkan_window, live_client, frame_policy, native_audio, texture_decode, render_state, input_keymap, host_util. Bodies are moved verbatim; multi-line VulkanWindow / NativeAudioEngine / FrameRatePolicy members are defined out of line; one-line accessors stay inline. Anonymous namespace -> mt_host. No behavior change: ctest 15/15, port_gate macos+android PASS, desktop --live-client login screen and synthetic --draws runs unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a46093104c
commit
75d2dd8545
+9
-5
@@ -62,15 +62,19 @@ src/platform/ # 这些平台类的实现(CGraph
|
||||
src/platform/EterLib/RecordingDevice.cpp # IDirect3DDevice8 的记录实现:把 D3D8 调用录成绘制命令
|
||||
src/platform/ScriptLib/PythonBoot.cpp # 解释器启动、RunMainScript、脚本线程、PORT 模块注入
|
||||
third_party/cpython-2.7.18/ # 静态库
|
||||
src/host/main.cpp # SDL3 宿主:窗口/输入/触控、VulkanWindow 渲染器、帧率策略
|
||||
src/host/android_perf.h # Android 帧率、ADPF、电量/温度(JNI 到 MainActivity)
|
||||
android/ # Gradle 工程:SDLActivity 外壳 MainActivity、APK 打包
|
||||
src/host/main.cpp # SDL3 宿主入口:命令行、合成基准
|
||||
src/host/live_client.cpp # run_live_client:40250 客户端主循环
|
||||
src/host/vulkan_window.cpp # SDL 窗口/事件 + Vulkan 渲染器(回放 Render3DDraw / UIRenderCommand)
|
||||
src/host/frame_policy.cpp # 帧率策略(FrameRatePolicy)
|
||||
src/host/native_audio.cpp # MilesLib AudioCommand → SDL 音频流
|
||||
src/host/android_perf.h # Android 帧率、ADPF、电量/温度(JNI 到 MainActivity)
|
||||
android/ # Gradle 工程:SDLActivity 外壳 MainActivity、APK 打包
|
||||
```
|
||||
|
||||
运行结构(每帧):
|
||||
|
||||
```
|
||||
SDL3 宿主主循环(src/host/main.cpp run_live_client)
|
||||
SDL3 宿主主循环(src/host/live_client.cpp run_live_client)
|
||||
├─ SDL 事件 → 40250 的窗口消息/输入接口(鼠标、键盘、IME 文本、触控摇杆/按钮)
|
||||
├─ PythonBoot::AppFrame():交给脚本线程跑一次 CPythonApplication::Process()(宿主等待,两者不并发)
|
||||
│ └─ system.py / app.Loop() → UpdateGame / RenderGame / 窗口系统 Render
|
||||
@@ -108,7 +112,7 @@ PORT 扩展(40250 没有对应物,只为移动端/平台而加;不能改 4
|
||||
- 由 `PythonBoot::RunMainScript` 注入的 Python 模块:`mt_autohunt`(自动狩猎,`AutoHuntScript.inc`)、`mt_register`
|
||||
(客户端内账号注册)、`mt_framerate`(系统选项里的"画面帧率"行)。它们包装 40250 窗口类的方法,不修改脚本文件。
|
||||
- 触控控制(`src/host/touch_controller.h`):摇杆、攻击/技能按钮,转成 40250 的输入接口。
|
||||
- 帧率与功耗(`platform/EterBase/FrameRateMode.h` + `main.cpp` 的 `FrameRatePolicy`):30 / 60(默认)/ 显示器最高三档,
|
||||
- 帧率与功耗(`platform/EterBase/FrameRateMode.h` + `src/host/frame_policy.cpp` 的 `FrameRatePolicy`):30 / 60(默认)/ 显示器最高三档,
|
||||
无输入一段时间降到 30 fps(自动狩猎时除外),Android 上配合 `setFrameRate` 和 ADPF。
|
||||
- 性能遥测:`--perf-log` 写 CSV(`src/host/perf_log.h`、`platform/EterBase/PerfCounters.h`)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user