port(2V0-a): EterPythonLib 窗口系统的头进镜像

2V0 的入口实测:audit/slices/2V0.json 的 212 个头里 164 个已经在镜像中,缺 48 个
(1 个 EterLib、5 个 EterPythonLib、42 个 UserInterface);10 个单元里已移植 2 个。
本轮补 EterPythonLib 这 5 个,外加必须先有的 EterPythonLib/StdAfx.h —— port_header_gate
按 40250 的做法把每个头放在所属库的 StdAfx.h 后面编译,没有它这五个既看不到
<Python.h> 也看不到 STL 和 CSingleton。

6 个文件全是 port_copy.py 的机械拷贝,0 处手改。

顺带修正清单的一处误报:EterLib/Dimm.h 不是 40250 的源文件,是 Windows SDK <dimm.h>
的 MIDL 产物,port/common/shim/win32/Dimm.h 已经顶掉了;镜像一份反而遮住 shim,
EterLib/IME.h 的 #include "Dimm.h" 会去找 rpc.h。拷进来验证后删掉。

只有头,没有 .cpp,所以没有 port-map 条目 —— 只有声明,没有可调用的东西。
port_header_gate 新增 6 个 TU 全绿;ctest 27/27。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-23 10:50:24 +09:00
co-authored by Claude Opus 5
parent 0a1cdf3d3e
commit 369a80fc10
8 changed files with 1065 additions and 0 deletions
+16
View File
@@ -385,6 +385,22 @@ extension/third_party/cpython-2.7.18/ # 静态库(2P 批次
`EterPythonLib/PythonWindow*.cpp``PythonWindowManager*.cpp``PythonGraphic*Module.cpp`
`PythonApplicationModule.cpp` 和所需 platform UI adapter;玩法模块先用桩。验收为 app 进程内运行 `system.py`,显示并可操作
Logo/Popup,输入、焦点、裁剪、文本和图片至少各有一个运行测试。
**入口状态(2026-09-23 实测)**`audit/slices/2V0.json` 的 212 个头里 164 个已在镜像中,缺 48 个;
10 个单元里 `ScriptLib/PythonLauncher.cpp``UserInterface/PythonPackModule.cpp` 已移植,缺 8 个。
(清单里的 `EterLib/Dimm.h` 是误报:那是 Windows SDK `<dimm.h>` 的 MIDL 产物,40250 把它放在 EterLib 下,
`port/common/shim/win32/Dimm.h` 已经顶掉了;镜像一份反而会遮住 shim,`IME.h` 就找不到 `rpc.h`。)
子步骤,按依赖从下往上:
| 子步骤 | 内容 | 状态 |
| --- | --- | --- |
| 2V0-a | `EterPythonLib/StdAfx.h` + 5 个窗口系统头进镜像,门禁绿 | 完成 |
| 2V0-b | `EterPythonLib/PythonWindow.cpp``PythonWindowManager.cpp`(窗口树逻辑) | 未做 |
| 2V0-c | `wndMgr` / `grp` / `grpImage` / `grpText` / `grpThing` 模块 | 未做 |
| 2V0-d | 42 个 `UserInterface` 头(都在 `PythonApplication.h` 后面)+ `PythonApplicationModule.cpp``app` | 未做 |
| 2V0-e | `dbg` 等桩模块补齐,`system.py` 跑到 `prototype.RunApp()` | 未做 |
| 2V0-f | Godot 渲染器上的 platform UI adapterLogo/Popup 可显示可操作 | 未做 |
2. **2V1 — 登录/选角**:加入 `PythonNetworkStream{,PhaseHandShake,PhaseLogin,PhaseSelect,PhaseLoading}.cpp`
`PythonNetworkStreamModule.cpp`、AccountConnector 及登录/选角脚本真实调用到的模块。验收为 FakeServer 离线完成 phase 顺序,
再以真服 smoke 证明登录、角色列表和选择进入 Loading;未验证的服务器分支记 `NEEDS_LIVE`