Skip to content

phase33(display-engine): introduce private FormBrowser view model#29

Merged
MarsDoge merged 1 commit into
mainfrom
phase33/displayengine-form-view-model
May 23, 2026
Merged

phase33(display-engine): introduce private FormBrowser view model#29
MarsDoge merged 1 commit into
mainfrom
phase33/displayengine-form-view-model

Conversation

@MarsDoge
Copy link
Copy Markdown
Owner

这是干什么了?

这不是完整 DisplayEngine UX 重写,而是先给 ModernDisplayEngineDxe 的 product path 加一层私有中间模型:

edk2 FormBrowser DisplayData
-> ModernUiCustomizedDisplayLib private FormModel
-> existing key help / rendering path

目的:后续 DisplayEngine 不要直接在 callback/绘制函数里散落 Statement->OpCode->OpCode 的 UX 判断,而是先把 FormBrowser 已经算好的 statement/form 状态归一化成 ModernSetup 自己理解的 row kind/state。

摘要

  • 新增私有 ModernDisplayFormModel.{h,c},只放在 ModernUiCustomizedDisplayLib 内部,不新增 DEC/public API。
  • 定义 MODERN_DISPLAY_FORM_MODEL / MODERN_DISPLAY_FORM_ROW / row kind / row state。
  • RefreshKeyHelp() 改为通过 row kind/state 做 UX 分流,保留现有 key help 行为。
  • Form model 只借用 FormBrowser 提供的 FORM_DISPLAY_ENGINE_* 指针,不复制/拥有 HII 数据。
  • smoke 增加 Phase33 边界检查,防止新模型引入 HII bridge / ConfigAccess / varstore 写入路径。

明确边界

  • 不解析 IFR package。
  • 不实现 ConfigAccess。
  • 不 RouteConfig / ExtractConfig / SetVariable / HiiSetBrowserData。
  • 不提升 ModernUiHiiBridgeLib 为 product path。
  • 不改 ModernUiRendererLib / ModernUiEngineLib public API。
  • 不声明完整视觉 UX 已完成;这里只是 FormBrowser-to-Modern UI view model foundation。

验证

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

@MarsDoge MarsDoge merged commit 65d9335 into main May 23, 2026
1 check passed
@MarsDoge MarsDoge deleted the phase33/displayengine-form-view-model branch May 23, 2026 06:21
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