关键引用¶
路径以仓库根目录为基准。模块编译边界以各级 CMakeLists.txt 和目标源列表为准。
构建与配置¶
| 路径 | 作用 |
|---|---|
CMakeLists.txt |
根构建编排、工具链和模块入口 |
CMakePresets.json |
iOS、Android、macOS、Linux 预设 |
build.sh |
平台构建统一入口 |
build/build_ios.sh |
iOS 静态库、依赖合并和 Flutter 构建 |
build/build_android.sh |
Android .so、JNI 和 APK 构建 |
vcpkg.json |
依赖清单 |
vcpkg-configuration.json |
registry 和 overlay 配置 |
vcpkg/triplets/ |
平台 ABI 与编译选项 |
C ABI 与 Flutter¶
bridge/engine_api/include/engine_api.h:生命周期、启动、帧、输入、渲染目标和统计接口。bridge/engine_api/src/engine_api.cpp:C ABI 实现、运行时状态和主循环。bridge/engine_api/src/engine_api_android_jni.cpp:Android Surface/JNI 胶水。bridge/flutter_engine_bridge/lib/src/ffi/engine_bindings.dart:Dart FFI 类型绑定。bridge/flutter_engine_bridge/lib/src/ffi/engine_ffi.dart:动态库加载与调用封装。apps/flutter_app/lib/engine/engine_bridge.dart:Flutter 侧生命周期封装。apps/flutter_app/lib/widgets/engine_surface.dart:纹理显示、尺寸同步和输入。
引擎核心¶
cpp/core/tjs2/:TJS2 VM、字节码、内置对象和异常。cpp/core/base/:存储、归档、事件、消息和 KAG。cpp/core/environ/EngineBootstrap.*:子系统初始化顺序。cpp/core/environ/EngineLoop.*:定时器、事件和每帧执行。cpp/core/visual/LayerIntf.*:图层接口和绘制提交。cpp/core/visual/LayerBitmapImpl.*:位图、字体和绘制资源。cpp/core/visual/RenderManager*:渲染目标与图形后端。cpp/core/visual/tvpgl.cpp:像素混合标量基准。cpp/core/movie/ffmpeg/:视频解码和播放调度。cpp/core/plugin/:插件宿主和 ncbind。
插件¶
cpp/plugins/psbfile/:PSB 归档、图像、运动数据和元数据。cpp/plugins/psdfile/:PSD 图层和资源。cpp/plugins/motionplayer/:PSB/M2 时间轴和动态节点。cpp/plugins/layerex_draw/:扩展绘制。cpp/plugins/zcompat/:兼容名称映射和桩。cpp/plugins/cubism/:可选 Live2D SDK 接入。
修改前确认¶
- 先确认目标属于 C ABI、Flutter、核心引擎、插件还是脚本兼容层。
- 修改公共 C ABI 时同步检查 Dart binding 和版本约束。
- 修改渲染或生命周期时检查 context、线程、所有权和重启路径。
- 修改 SIMD 时以
tvpgl.cpp的标量函数为基准,并运行逐像素对比。