Skip to content

phase34(display-engine): harden row rendering state model#30

Merged
MarsDoge merged 1 commit into
mainfrom
phase34/displayengine-row-rendering-hardening
May 23, 2026
Merged

phase34(display-engine): harden row rendering state model#30
MarsDoge merged 1 commit into
mainfrom
phase34/displayengine-row-rendering-hardening

Conversation

@MarsDoge
Copy link
Copy Markdown
Owner

这是干什么了?

Phase33 只是加了私有 FormModel 中间层;Phase34 开始让 DisplayEngine 的 row surface 真正消费这个模型。

这不是完整视觉重写,也不是 HiiBridge 上位。它做的是把 FormBrowser 已经算好的 form/statement 状态统一归类成 Modern UI row role,让后续 row rendering polish 不再散落在 DisplayOneMenu() 的 ad-hoc 判断里。

摘要

  • 扩展 ModernDisplayFormModel row state:highlighted/selected、disabled/locked、read-only、changed、invalid、modal、page changed。
  • 新增 row helper:editable/text-only/action-like/visual role mapping。
  • ModernDisplayDrawStatementRow() 现在接收 FormData + Statement,内部通过 FormModel 映射到 ModernUiRowRole
  • DisplayOneMenu() 移除本地 IsActionRow / IsSubtitleRow 分散判断,交给 CustomizedDisplayLib 私有模型。
  • smoke 增加 Phase34 边界检查,防止 row surface 绕开 FormModel 或引入 HII/ConfigAccess/varstore 路径。

边界

  • 不解析 IFR package。
  • 不实现/调用 ConfigAccess。
  • 不 RouteConfig / ExtractConfig / SetVariable / HiiSetBrowserData。
  • 不提升 ModernUiHiiBridgeLib
  • 不改 public DEC/API。
  • 不做 renderer 架构重写。

验证

  • python3 Tests/Smoke/smoke_validate.py PASS
  • Scripts/xarch-validate.sh --all --mode dry-run PASS
  • git diff --check PASS
  • TARGET=RELEASE MODERN_SETUP_DISPLAY_ENGINE=modern MODERN_SETUP_REPLACE_UIAPP=1 Scripts/build-ovmf-x64.sh PASS

后续

  • Phase35 可以继续做 native-vs-modern FormBrowser screenshot validation。
  • 或者继续基于 row role 做具体 question row visual polish。

@MarsDoge MarsDoge merged commit 8d4a222 into main May 23, 2026
1 check passed
@MarsDoge MarsDoge deleted the phase34/displayengine-row-rendering-hardening branch May 23, 2026 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant