Files
MeowOS-For-R3P2/.gitignore
T
AskaEth 54750a63c5 feat(sdk): SDK 矢量字(meow_ft_*,§10.1)——上收阅读器 FreeType 管线
问题:SDK 位图字库(meow_font)只有离散字号档位,全字形 atlas 稳态 17.3MiB
(27MB 整机装不下)→ 大字库/大字号必出豆腐。阅读器 R1/R2 的 FreeType 管线已真机验证
(MiSans OTF),本 commit 将其上收 SDK,让任意 App 用上无级字号 + CJK 全字形。

设计(追加式,与位图字库并存):
- meow_ui_ft.c(独立 .o):meow_ft_load/unload/loaded/text/width/line_height/
  ascender/descender/cache_set_slots/cache_slots/cache_used。底层按 READER_ENGINE_NOTES §5:
  FT_New_Face(path) 按需读文件(零整载 anon);灰阶 FT_LOAD_RENDER|NO_HINTING|TARGET_LIGHT;
  glyph LRU key=(px<<32)|cp,默认 512(~0.46MB),可配 256/1024;测宽不栅格化。
- meow_ui_gfx.c 只加两个薄封装 meow_gfx_ft_blend_px/dirty(写 back_buf + 标脏),
  使 meow_ui_ft.o 不引入新依赖——「不调 meow_ft_* 的 App 零增量」(freetype 不拉入,已验证)。
- 降级:加载失败/无卡 → meow_ft_loaded()==0 → meow_ft_text 自动改走 meow_ui_text(位图字库,
  5x7 兜底),绝不豆腐不崩;meow_ft_width/line_height 降级位图字库度量。
- FreeType 2.14.3 vendor 进 patch_v2/sdk/vendor/(gitignore)+ build_sdk.sh 可复现拉取+裁剪
  构建(-DFT_DISABLE_ZLIB/BZIP2/PNG/HARFBUZZ/BROTLI=TRUE,静态 musl),freetype .o 编入
  meow_ui.a,App 链接命令不变(meow_ui.a libz.a -lpthread)。

验证:
- 宿主 test_meow_ui_ft 5 项全 PASS(加载/渲染像素非空/宽度测量/LRU 淘汰/降级回退)。
- 全量 SDK 回归:widgets/sdk_fixes/dispatch/notif_gesture/overlay_suppress/listvirt/box/anim/
  scroll/ime_fix/pinyin/notif_open/sb_collapse/theme/notify_ipc/audio_host/vol/str/config/
  sdk_input_keys 全 PASS。
- 交叉 -Wall -Wextra 全 SDK TU 0 warning;qemu-mipsel 冒烟 PASS(mipsel FreeType 真光栅化)。
- meow_ui.a 新 md5 6ff5be9455f9e197b35fa120be012041(未重链不部署 App,四 App 免重链)。

MEOW_APP_SDK.md 补 §10.1 矢量字一节 + 公共头索引/§9 构建约定更新;.gitignore 忽略
patch_v2/sdk/vendor/ 与 test_meow_ui_ft 二进制。
2026-09-02 09:51:23 +08:00

100 lines
3.0 KiB
Plaintext
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.
# === 大文件 / 可再生产物(不入库) ===
# 固件镜像(可由 build_*.sh 从 rootfs 树重新打包)
*.upt
# TF 卡/NAND 全量备份
backups/
# 固件组装的 rootfs 树(可重新打包,勿入库;.upt 已排除)
fw_apps/
fw_ssh/
fw_ssh*/
# repack/round-trip 测试产物
repack_test/
# Rust 交叉编译工程(target/ 等体积大;如需保留源码可手动最小化)
ncm_mips_smoke/
# 旧 patch 演示/遗留超大树
patch_demo/
# 解包的 squashfs / rootfs
unpacked/
unpacked_v14/
# QEMU 全系统仿真(含 qemu-src、rootfs 镜像)
qemu_env/
# 交叉工具链(zig/musl.cc 大件,从 .tools 下的小脚本引用,重装可复原)
.tools/
# 设备 fb 原始帧 dump
*.raw
# 外部克隆的社区仓库(各自独立 git)
hiby_os_crack/
hiby-mods/
CNMPlayer/
# 旧 patch 实验/遗留(含大量 5.4MB hiby_player 变体二进制,可重新生成)
patch_v2_me/
patch_demo/
# 播放器二进制变体(stock/patched,可由 apply_patch 脚本+stock 重生成;勿入库)
patch_v2/hiby_player_*
patch_v2/cave_4b_*
# 临时/编译中间物
__pycache__/
*.pyc
*.o
*.a
# 大图(字库 atlas 生成物,可从 font/gen 重新生成)
font/atlas/
# SSH 私钥/认证(绝不入库;.pub 公钥可留但这里一并忽略,按需手动 add)
ssh_keys/
# .mpk 签名私钥(Ed25519,离线维护者侧;绝不入库)
.keys/
# 二进制备份(*.bak 由 build/升级流程生成,勿入库)
*.bak
*.orig
*.rej
# === 编译中间物 / 临时文件(不入库) ===
*.new
*.tmp
*.o
*.a
# 宿主测试产物 / 真机截图(device_test 下可再生产物)
device_test/*.png
device_test/*.rgb565_*.png
device_test/host_*.c
device_test/gesture_host_test.c
device_test/meow_ui_demo.c
device_test/meow_ime_demo.c
# SSH 密钥/认证(绝不入库)
ssh_keys/
# 本地开发文档(Analysis/Notes/Test/device_test/docs-plan,仅本地保留,不入库)
devdocs/
scripts/build/
fonts_lib/
# 字体源文件(体积大,不进库;产物在 TF 卡)
font/src/**/*.otf
font/src/**/*.ttf
font/src/**/*.ttc
patch_v2/sdk/test_p1p2p3_repro
# ncm_app vendor 源码与构建产物(体积大;版本/获取方式见 VENDOR_NOTES.md,构建脚本可复现)
# 例外:dr_flac 单头文件入库(§19 FLAC 解码依赖,532KB 单文件可入库)
patch_v2/ncm_app/vendor/*
!patch_v2/ncm_app/vendor/dr_flac/
patch_v2/ncm_app/out/
patch_v2/sdk/test_sdk_fixes
# SDK 矢量字(§10.1):FreeType vendor 源码/构建产物(体积大;版本 2.14.3,build_sdk.sh 可复现
# 拉取+裁剪构建 -DFT_DISABLE_* 静态 musl)与宿主测试二进制
patch_v2/sdk/vendor/
patch_v2/sdk/test_meow_ui_ft
# 诊断工具构建产物(源码入库,二进制免)
patch_v2/tools/sndprobe
patch_v2/tools/tonepcm
patch_v2/tools/tonepcm2
patch_v2/ncm_app/cache_evict_sim
patch_v2/ncm_app/pagination_sim
patch_v2/ncm_app/audiod_chain_sim
patch_v2/ncm_app/window_sim
patch_v2/ncm_app/cover_chain_sim
patch_v2/ncm_app/player_flow_sim
patch_v2/ncm_app/degrade_sim