Files
endorphin-tessera-gui/src/render/mod.rs
T

42 lines
2.7 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! 渲染模块入口。排版、源视觉协议、相机投影和最终光栅化各自独立,通过不可变帧衔接。
//! 调用链:model/snapshot 提供不可变 UiNode,layout/source_layout 求几何,source_paint 产出发布命令。
//! document 转成 display_list 后由 software_renderer 光栅化;scene 组合窗口壳层,viewport/scroll 与输入复用坐标规则。
//! main.rs 的 crate 根重导出保留现有内部路径;image/text_flow 另以 render 子模块路径供桥接调用。
//!
// 目录确定模块归属;main 中的 crate 根别名保持内部调用路径稳定。
/// 计算边框、内外边距和内容区域,并应用容器主轴/交叉轴分配规则。
pub(crate) mod box_model;
/// 表达与转换绘图命令,集中处理显示列表裁剪和坐标变换。
pub(crate) mod display_list;
/// 提供点、矩形等基础几何运算,供布局、命中和绘制共享。
pub(crate) mod geometry;
/// 实现原生布局求解、约束分配及可重用的尺寸/几何数据结构。
pub(crate) mod layout;
/// 适配原生视觉方法的测量、排列与绘制行为,供语言桥接和纯布局流程使用。
pub(crate) mod native_visual;
/// 描述整页表面模式、平移缩放和视口到世界坐标转换。
pub(crate) mod page;
/// 组合页面、侧栏和开发工具的整窗显示列表,并返回宿主输入所需布局。
pub(crate) mod scene;
/// 完成三维投影、射线拾取、裁剪与软件深度光栅化;子模块拆分数学、空间索引和世界 UI 面板。
pub(crate) mod scene3d;
/// 计算每个出现位置的滚动范围、裁剪和滚轮目标,嵌套滚动按可消费方向选择。
pub(crate) mod scroll;
/// 将完整显示列表写入像素缓冲;处理二维命令以及嵌套场景表面的最终合成。
pub(crate) mod software_renderer;
/// 在受控只读上下文调用源 hitTest,结合出现位置与可见性判断输入目标。
pub(crate) mod source_hit;
/// 用可恢复 VM 调用执行源 measure/arrange,追踪读依赖并迭代到几何稳定后产出草稿。
pub(crate) mod source_layout;
/// 分片执行源 paint 并验证/解码返回命令;未完成的绘制不能当作完整帧发布。
pub(crate) mod source_paint;
/// 使用系统字体塑形、换行和字形缓存,统一测量与像素绘制的文字尺寸。
pub(crate) mod text;
/// 处理二维场景相机、局部视口投影和空间查询,供绘制与命中使用相同变换。
pub(crate) mod viewport;
/// 解码与缓存不可变 RGBA 资源、预渲染文字,并提供带 alpha 的纹理采样与轮廓。
pub mod image;
/// 以预备字词图片和避让轮廓安排自由文字排版,几何与输出绘制资源分开保留。
pub mod text_flow;