- 条漫:meow_scroll 跟手+fling,按滚动位置懒解码视口±1 页(驻留上限 4 页); 排版用 mr_book_meta 累加适宽高度(nav.c 纯逻辑,宿主可测) - 模式:阅读 chrome 图标一键切翻页/条漫;每册模式与 last page 经 meow_config 持久化 (reader.mode/page.<FNV1a64(册路径)>),重进该册恢复模式与页码 - 续读:离开/翻页/滚动停止节流落盘;书库扫描给含图册副标题追加「· 续读 Pn」 - 册间衔接:末页前进→同父目录下一含图册首页,首页后退→上一册末页;无相邻册轻提示不退出 - 跳页:chrome 内 meow_slider,目标页预解码完成后落位(2.5s 超时降级提示) - 解码:改走 M12 预算解码 meow_img_load_file_dim;超大 PNG/BMP 先 probe 预判, 超 40MiB 原始 RGBA 跳过并显示「图片无法显示」,12MiB 以上记 WARN(如实保留残余风险) - 测试:新增条漫排版/跳页状态/模式续读持久化/册间边界宿主测试,以及真实 SDK 源码树上的 阅读器集成测试(模式切换/跳页落位/续读/跨册),test/run_webtoon_tests.sh 一键运行
29 lines
1.0 KiB
C
29 lines
1.0 KiB
C
/* ui/reader/reader.h — 阅读页给 app.c 的事件接缝(跟手拖动/平移)。
|
|
*
|
|
* app.c 只做最小路由:ACT_READER 时的 on_touch_down/move 转给这里(镜像 library 分支)。
|
|
* 其余入口(on_tap / view on_event / mr_reader_open_dir)仍走 tuku_internal.h 的既有声明。
|
|
*/
|
|
#ifndef TUKU_UI_READER_READER_H
|
|
#define TUKU_UI_READER_READER_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void reader_on_touch_down(int x, int y);
|
|
void reader_on_touch_move(int x, int y);
|
|
|
|
#ifdef MR_READER_HOST_TEST
|
|
/* 宿主集成测试专用:只读观察本页状态(不参与产品逻辑)。 */
|
|
int mr_reader_ui_mode(void); /* MR_MODE_PAGED / MR_MODE_WEBTOON */
|
|
int mr_reader_ui_page(void); /* 当前页(条漫=视口顶端所在页) */
|
|
int mr_reader_ui_count(void); /* 当前册页数 */
|
|
int mr_reader_ui_jump_open(void); /* 1=跳页滑块已展开 */
|
|
int mr_reader_ui_jump_pending(void);/* 1=跳页目标等待解码 */
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* TUKU_UI_READER_READER_H */
|