Skip to content

Latest commit

 

History

History

gui_cjk

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

gui_cjk —— Ctron GUI 中文一等示例

FreeType 中文纹理渲染 + 真实点击计数:标题「Ctron 中文窗口」为静态纹理,点击蓝色 圆角按钮后 count: N 纹理即时重渲——演示 GUI 域「中文一等」目标(M3 文本管线第一片)。

这是直绘路径(raylib 纹理自持坐标,不经 Clay 布局);声明式路径(CTML + Clay)见 examples/gui_counter,Clay TEXT → FreeType 的渲染集成随 M3 落地后两条路径合流。

运行

sh run.sh          # 构建 + headless 渲染冒烟(无 CJK 字体则 skip)
sh run.sh --run    # 追加启动真实窗口,真实点击交互

文件导览

  • src/main.ct —— 入口:CTRON_GUI_HEADLESS 环境变量切换 headless 冒烟 / 窗口循环; 字体探测(macOS Hiragino/PingFang/Songti,Linux Noto/WQY)在 shim 内
  • C shim 不在示例树内:run.sh 链接域库单一真源 std/gui/c_src/ft_shim.c (FreeType 两遍渲染 → RGBA → raylib 纹理注册表;含 headless 探针 ft_last_w/ft_last_h/ft_probe_nonzero)

当前能力边界(如实)

  • headless 冒烟在无 CJK 字体的环境下 skip(rc=0)——逐字节严格断言归 tests/gui/s8_cjk
  • 无 IME 组词(preedit)——M0–M2 定义形态;composer 随 M3
  • shaping(HarfBuzz)/混排退绕随 M3 后续切片
  • 解析器/绑定与本示例无关(直绘路径);严格验证归 tests/gui 阶梯(s8/s9)
  • C 链接域库单一真源 std/gui/c_src/(W6 换面已落):示例树零 C;bind 层把 extern 声明收编为 std/gui 模块随 P2-B,用户写 C 仅剩第三方接入逃生口场景