FORGE KUI / docs

从 HTML 到原生窗口

了解文档、帧更新与渲染边界,便于集成和排错。

版本 3.61.7

窗口与文档

Platform 管理平台初始化和事件循环。Window 拥有目标窗口,Document 保存 DOM、样式和界面管理器。加载新 HTML 会重建文档状态,不要继续使用旧 DOM 上的裸指针。

一帧里的工作

Window::processFrame() 进入 Renderer::renderFrame(),由 Document::updateIfNeeded() 更新脚本、计时器、样式和布局;Painter 生成 DisplayList,由 RenderBackend 执行。样式和布局由 Document 驱动,不能从 Renderer 侧随意跳过生命周期。

变化如何传播

样式、布局、绘制分别有脏标记。修改颜色通常只需要重新绘制;改变盒树结构或几何则可能需要重新布局。测性能时,应区分耗时、实际工作量、提交帧数和页面空闲状态。

渲染边界

Skia 位于渲染后端边界。应用应通过 KUI 公共 API 和扩展 ABI 对接,不依赖引擎内部布局对象或 Skia 类型。原生 C++ ABI 仍涉及 STL 和 CRT;纯 C ABI 的兼容条件另见部署说明。

应用代码放在哪一层

HTML/CSS 负责界面结构和外观;原生模型负责业务状态、存储和任务;事件把操作连到模型。Lua 适合局部界面逻辑。把“已保存”建立在业务操作成功之后,不要让一段显示文本代替数据状态。

重载与重新构建不是一回事

loadHTML/loadFile 会替换文档,旧节点引用需要重新查询。课程工程把页面嵌入生成头,因此改 HTML/CSS 后要重新构建。DevTools 的临时样式修改适合试验;确定结果后写回源文件,再启动核对。

文档有误或遗漏?

反馈此页问题 →