跳转至

开发文档索引

本目录面向 AI Agent 与开发者,用于快速掌握项目技术栈、架构与关键位置, 避免每次从头扫描整个代码库浪费上下文与 token。 请保持本目录内容与代码库现状同步;平台结构调整后务必更新。

新 AI Agent 上手顺序:根目录 AGENTS.md(首屏指令)→ 本文档(索引) → conventions.md(约定与陷阱,最重要)→ key-references.md(关键文件/符号)。 本项目有大批量代码由 AI Agent 编写,请沿用本目录的文档约定并保持同步。

项目一句话

PocketKrKr:KiriKiri2(吉里吉里2)视觉小说引擎的现代化运行环境。 C++ 引擎(TVP/TJS2)离屏渲染 → IOSurface / SurfaceTexture 零拷贝 → Flutter 纹理显示, Flutter 壳应用提供 UI。当前面向移动端(iOS + Android 为主目标,macOS 为 Apple 开发目标)。

目录索引

文档 内容
getting-started.md 入门指南:项目是什么 / 目录地图 / 构建运行 / 装游戏 / 渲染原理 / 改代码调试(新开发者先读这个)
rendering-diagnosis.md 渲染/黑屏诊断方法(探针):怎么开探针、怎么读日志二分定位、日志文件会不会膨胀
tech-stack.md 技术栈、语言、关键三方库、vcpkg 依赖
architecture.md 模块架构、渲染数据流、桥接层设计、GPU 管线现状
source-map.md 源代码结构地图:按目录树的 CPP + Flutter 源码逐模块讲解(学习/开发用)
key-references.md 关键文件 / 符号 / C API 索引(改代码先看这里)
build.md 构建与工具链(iOS / Android / macOS / Linux 验证)、产物、CI、排错
conventions.md 目录命名、平台约定、历史陷阱、SIMD 审计记录(重要)
compatibility.md 游戏兼容性测试方法论(与 Z 持平目标的闭环流程)
perf-optimization.md 性能优化与代码重构候选(收益/风险/验证方式)
todo.md 待办 / 已知问题(AI Agent 协作队列,先看这里)

极简速览(TL;DR)

apps/flutter_app/             Flutter 壳应用(ios / android / macos 平台目录)
bridge/engine_api/            C ABI 引擎桥接(engine_create/tick/destroy…)
bridge/flutter_engine_bridge/ Flutter 平台插件(IOSurface / SurfaceTexture + Dart FFI)
cpp/core/                     C++ 引擎核心(tjs2/base/environ/sound/visual/movie…)
cpp/plugins/                  TJS 插件(psb/psd/layerex/motionplayer/fstat/cubism…)
build.sh + build/*.sh         iOS / Android / macOS 一键构建
CMakeLists.txt + CMakePresets.json   MacOS/iOS/Android/Linux 预设
vcpkg.json + vcpkg/triplets/  arm64-ios / arm64-android 依赖与 triplet
platforms/apple/macos/        macOS 独立资源(Flutter 壳已接管入口)

iOS 构建链路./build.sh ios debug|release → CMake iOS 预设编译 libengine_api.a(静态库) → build_ios.shlibtool 合并工程/三方静态库到 bridge/flutter_engine_bridge/ios/Libs/flutter build ios

Android 构建链路./build.sh android debug|release → CMake Android 预设编译 libengine_api.so(自包含共享库,含 JNI 胶水) → build_android.sh 拷贝到 apps/flutter_app/android/app/src/main/jniLibs/arm64-v8a/flutter build apk

关键概念:iOS 上引擎以静态库链接进 Runner,Dart 用 DynamicLibrary.process() 加载; macOS 上为动态库 libengine_api.dylib,打包进 App 的 Frameworks; Android 上为自包含 .so(插件源码经 target_sources(PUBLIC)INTERFACE_SOURCES 直接编进 engine_api.so,普通链接 krkr2core+krkr2plugin;不用 --whole-archive), Dart FFI 直接加载。 详见 architecture.mdbuild.md