From 1fc4205534cea25e9503852daf848dabf1d14c39 Mon Sep 17 00:00:00 2001 From: MeowOS Date: Mon, 31 Aug 2026 05:24:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(sdk):=20=E7=BB=98=E5=88=B6=E6=9C=9F?= =?UTF-8?q?=E9=80=9A=E7=94=A8clip=20+=20view=E9=80=92=E5=BD=92/on=5Fevent?= =?UTF-8?q?=E6=8E=A5=E7=BA=BF=20(agent-195)=20=E2=80=94=20=E2=91=A0?= =?UTF-8?q?=E6=A0=88=E5=BC=8Fclip=20rect(g=5Fclip=5Fstack[16]),=20?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=86=99=E5=83=8F=E7=B4=A0=E5=8E=9F=E8=AF=AD?= =?UTF-8?q?=E8=BF=87clip,=20meow=5Fwidget=5Fdraw=20push/pop=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E7=9F=A9=E5=BD=A2(=E5=90=ABW=5FCUSTOM,=20=E6=A0=B9?= =?UTF-8?q?=E6=B2=BB=E8=B6=8A=E7=95=8C=E8=84=8F=E5=8C=BA),=20IME/=E6=A8=A1?= =?UTF-8?q?=E6=80=81=E9=A1=B6=E5=B1=82=E5=85=A8=E5=B1=8F=E4=B8=8D=E5=8F=97?= =?UTF-8?q?=E5=BD=B1=E5=93=8D=20=E2=91=A1view=20enter/leave=E9=80=92?= =?UTF-8?q?=E5=BD=92children=20+=20meow=5Fview=5Fdispatch=5Fevent(z?= =?UTF-8?q?=E9=99=8D=E5=BA=8F=E5=AD=90>=E7=88=B6=E5=91=BD=E4=B8=AD?= =?UTF-8?q?=E5=8D=B3=E6=B6=88=E8=B4=B9);=20hello=20App=E5=B1=82=E6=98=BE?= =?UTF-8?q?=E5=BC=8F=E9=A9=B1=E5=8A=A8=E9=80=80=E5=BD=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit meow_ui.a→da4d3a7d; hello→c655ba43; 宿主4套件全PASS(含clip越界断言+view递归断言) 出入: W_SLIDER拇指在max处被裁(既有几何瑕疵可见化,待修); on_draw祖先已进入即画 --- meow_ui_draw.c | 10 +++- meow_ui_gfx.c | 101 +++++++++++++++++++++++++++++++++++++++-- meow_ui_internal.h | 8 ++++ meow_ui_log.c | 24 +++++----- meow_ui_view.c | 41 ++++++++++++++++- meow_ui_view.h | 5 ++ meow_ui_widget.c | 5 ++ test_ime_fix | Bin 304304 -> 304600 bytes test_meow_ui_widgets | Bin 303960 -> 304720 bytes test_meow_ui_widgets.c | 72 +++++++++++++++++++++++++++++ 10 files changed, 247 insertions(+), 19 deletions(-) diff --git a/meow_ui_draw.c b/meow_ui_draw.c index fc25145..7ffcd4e 100644 --- a/meow_ui_draw.c +++ b/meow_ui_draw.c @@ -243,7 +243,15 @@ void meow_draw_view_unregister(struct meow_view *v) } int meow_draw_view_entered(const struct meow_view *v) { - return v ? meow_view_get_state(v) & MEOW_VIEW_STATE_ENTERED : 0; + /* 子>父:view 或其任意祖先已进入即视为「可绘制」——配合 view_enter/leave 递归 + * (meow_ui_view.c §A.4),父 on_enter 重绘时子视图(尚未单独进入)也要经 on_draw 画出; + * 且子随父进出("子视图随父进出"),祖先已进入 ⇒ 子树已进入,可绘制。 */ + const struct meow_view *cur = v; + while (cur) { + if (meow_view_get_state(cur) & MEOW_VIEW_STATE_ENTERED) return 1; + cur = meow_view_parent(cur); + } + return 0; } void meow_draw_view_set_z(struct meow_view *v, int z) { diff --git a/meow_ui_gfx.c b/meow_ui_gfx.c index e2dd313..bc4c8ca 100644 --- a/meow_ui_gfx.c +++ b/meow_ui_gfx.c @@ -62,6 +62,48 @@ static int g_dirty[/*MUI_DIRTY_MAX*/12][4]; /* [x,y,w,h] */ static int g_ndirty = 0; static int g_dirty_full = 1; +/* ---- 绘制期裁剪(clip rect,§3;默认全屏)---- + * 栈式嵌套:push 与当前 clip 求交后压栈,pop 恢复。写像素原语(put_px / put_px_blend / + * fill_rect / fill_rect_alpha / round / circle / ring / blit_icon / blit_rgba / text) + * 统一过 g_clip;顶层(g_clip_n==0)= 全屏(g_xres×g_yres),故 IME/模态的全屏 scrim + * 直绘不受裁剪。 */ +#define MUI_CLIP_MAX 16 +static int g_clip_stack[MUI_CLIP_MAX][4]; /* [x0,y0,x1,y1](闭开区间) */ +static int g_clip_n = 0; + +static void clip_cur(int out[4]) { /* 当前 clip 边界(无 clip = 全屏) */ + if (g_clip_n > 0) { + out[0] = g_clip_stack[g_clip_n - 1][0]; out[1] = g_clip_stack[g_clip_n - 1][1]; + out[2] = g_clip_stack[g_clip_n - 1][2]; out[3] = g_clip_stack[g_clip_n - 1][3]; + } else { out[0] = 0; out[1] = 0; out[2] = g_xres; out[3] = g_yres; } +} +static int clip_contains(int x, int y) +{ + if (g_clip_n == 0) return x >= 0 && x < g_xres && y >= 0 && y < g_yres; + return x >= g_clip_stack[g_clip_n - 1][0] && x < g_clip_stack[g_clip_n - 1][2] && + y >= g_clip_stack[g_clip_n - 1][1] && y < g_clip_stack[g_clip_n - 1][3]; +} + +void meow_gfx_clip_push(int x, int y, int w, int h) +{ + if (!g_init_ok || w <= 0 || h <= 0) return; + int c[4]; clip_cur(c); + int ix0 = x > c[0] ? x : c[0]; + int iy0 = y > c[1] ? y : c[1]; + int ix1 = (x + w) < c[2] ? (x + w) : c[2]; + int iy1 = (y + h) < c[3] ? (y + h) : c[3]; + if (ix1 < ix0) ix1 = ix0; + if (iy1 < iy0) iy1 = iy0; + if (g_clip_n >= MUI_CLIP_MAX) return; /* 栈满:忽略本次 push(保持当前 clip) */ + g_clip_stack[g_clip_n][0] = ix0; g_clip_stack[g_clip_n][1] = iy0; + g_clip_stack[g_clip_n][2] = ix1; g_clip_stack[g_clip_n][3] = iy1; + g_clip_n++; +} +void meow_gfx_clip_pop(void) +{ + if (g_clip_n > 0) g_clip_n--; +} + static char *g_dump_path = NULL; /* ---- 状态栏「上收出屏只留提示线」(collapsed,基座)---- @@ -158,6 +200,17 @@ static void dirty_add(int x, int y, int w, int h) if (x + w > g_xres) w = g_xres - x; if (y + h > g_yres) h = g_yres - y; if (w <= 0 || h <= 0) return; + /* 绘制期裁剪:脏区也不越 clip(顶层 clip=全屏 → 无操作)。 */ + if (g_clip_n > 0) { + int *c = g_clip_stack[g_clip_n - 1]; + int x1 = x + w, y1 = y + h; + if (x < c[0]) x = c[0]; + if (y < c[1]) y = c[1]; + if (x1 > c[2]) x1 = c[2]; + if (y1 > c[3]) y1 = c[3]; + if (x1 <= x || y1 <= y) return; + w = x1 - x; h = y1 - y; + } for (int i = 0; i < g_ndirty; i++) { if (rect_hit(g_dirty[i][0], g_dirty[i][1], g_dirty[i][2], g_dirty[i][3], x, y, w, h)) { int nx1 = g_dirty[i][0] < x ? g_dirty[i][0] : x; @@ -237,6 +290,7 @@ void meow_gfx_blit_icon(int idx, int x, int y, int ink_h, uint32_t fg, int cy) for (int dx = 0; dx < t_w; dx++) { int tx = x0 + dx; if (tx < 0 || tx >= g_xres) continue; + if (!clip_contains(tx, ty)) continue; int sx = minx + (dx * ink_w) / t_w; int a = src[sy * SB_ICON_SIZE + sx]; if (a < 8) continue; /* 透明像素跳过 */ @@ -265,7 +319,7 @@ static uint16_t px_read_rgb565(int x, int y) static void put_px(int x, int y, uint32_t color) { - if (x < 0 || x >= g_xres || y < 0 || y >= g_yres) return; + if (!clip_contains(x, y)) return; if (g_bpp == 16) { px_write_rgb565(x, y, rgb565(color)); } else { @@ -276,7 +330,7 @@ static void put_px(int x, int y, uint32_t color) static void put_px_blend(int x, int y, uint32_t color, int alpha) { - if (x < 0 || x >= g_xres || y < 0 || y >= g_yres) return; + if (!clip_contains(x, y)) return; uint16_t fg = rgb565(color); if (g_bpp == 16) { uint16_t bg = px_read_rgb565(x, y); @@ -300,6 +354,10 @@ static void put_px_blend(int x, int y, uint32_t color, int alpha) void meow_ui_clear(uint32_t color) { if (!g_init_ok) return; + if (g_clip_n > 0) { /* 绘制期裁剪:清当前 clip 区(顶层 clip=全屏 → 走快速整刷) */ + meow_ui_fill_rect(0, 0, g_xres, g_yres, color); + return; + } /* 快速整刷(16bit 用半字填充,可 memset 当色值由 32bit 拼接掩码) */ if (g_bpp == 16) { uint16_t c16 = rgb565(color); @@ -327,6 +385,16 @@ void meow_ui_fill_rect(int x, int y, int w, int h, uint32_t color) if (x + w > g_xres) w = g_xres - x; if (y + h > g_yres) h = g_yres - y; if (w <= 0 || h <= 0) return; + if (g_clip_n > 0) { /* 绘制期裁剪:与当前 clip 求交(顶层 clip=全屏 → 无操作) */ + int *c = g_clip_stack[g_clip_n - 1]; + int x1 = x + w, y1 = y + h; + if (x < c[0]) x = c[0]; + if (y < c[1]) y = c[1]; + if (x1 > c[2]) x1 = c[2]; + if (y1 > c[3]) y1 = c[3]; + if (x1 <= x || y1 <= y) return; + w = x1 - x; h = y1 - y; + } if (g_bpp == 16) { uint16_t c16 = rgb565(color); for (int ry = y; ry < y + h; ry++) { @@ -534,6 +602,16 @@ void meow_ui_fill_rect_alpha(int x, int y, int w, int h, uint32_t color, int alp if (x + w > g_xres) w = g_xres - x; if (y + h > g_yres) h = g_yres - y; if (w <= 0 || h <= 0) return; + if (g_clip_n > 0) { /* 绘制期裁剪:与当前 clip 求交(顶层 clip=全屏 → 无操作) */ + int *c = g_clip_stack[g_clip_n - 1]; + int x1 = x + w, y1 = y + h; + if (x < c[0]) x = c[0]; + if (y < c[1]) y = c[1]; + if (x1 > c[2]) x1 = c[2]; + if (y1 > c[3]) y1 = c[3]; + if (x1 <= x || y1 <= y) return; + w = x1 - x; h = y1 - y; + } for (int ry = y; ry < y + h; ry++) for (int rx = x; rx < x + w; rx++) put_px_blend(rx, ry, color, alpha); dirty_add(x, y, w, h); @@ -677,13 +755,28 @@ static void text_draw(int x, int y, const char *s, int size, uint32_t color) { if (!g_init_ok || !s) return; if (g_mfont_ready && g_bpp == 16) { - meow_font_drawtext((uint16_t *)g_fb, x, y, s, rgb565(color), size); int w = meow_font_width_text(s, size); int hh = meow_font_line_height(size); + if (g_clip_n > 0) { + int *c = g_clip_stack[g_clip_n - 1]; + if (x + w <= c[0] || x >= c[2] || y + hh <= c[1] || y >= c[3]) return; /* 与 clip 无交 */ + if (!(x >= c[0] && x + w <= c[2] && y >= c[1] && y + hh <= c[3])) { + /* 部分相交:用「偏移 fb 子矩形 + 临时 fb 几何」做裁剪(meow_font 只按全屏剪)。 + * 把 fb 基址指向 clip 左上角、fb_w/h 设为 clip 尺寸、原点平移到 clip 坐标, + * 这样 meow_font 的逐字形裁剪天然落在 clip 内;画完恢复全屏几何。 */ + uint16_t *fb = (uint16_t *)(g_fb + (size_t)c[1] * g_line + (size_t)c[0] * 2); + meow_font_set_fb((unsigned)(c[2] - c[0]), (unsigned)(c[3] - c[1]), (unsigned)g_line); + meow_font_drawtext(fb, x - c[0], y - c[1], s, rgb565(color), size); + meow_font_set_fb((unsigned)g_xres, (unsigned)g_yres, (unsigned)g_line); + dirty_add(x, y, w, hh); + return; + } + } + meow_font_drawtext((uint16_t *)g_fb, x, y, s, rgb565(color), size); dirty_add(x, y, w, hh); } else { int sc = fallback_scale(size); - draw_text5x7(x, y, s, sc, color); + draw_text5x7(x, y, s, sc, color); /* 走 put_px,自动过 clip */ dirty_add(x, y, (int)strlen(s) * 6 * sc, 7 * sc); } } diff --git a/meow_ui_internal.h b/meow_ui_internal.h index 2dac50f..2d22645 100644 --- a/meow_ui_internal.h +++ b/meow_ui_internal.h @@ -102,6 +102,14 @@ void meow_gfx_mark_dirty(int x, int y, int w, int h); * 解除后由调用方一次 flush 原子上屏,避免覆盖层与 App on_tick 重绘同帧两刷频闪。 */ void meow_gfx_flush_hold(int on); +/* 绘制期裁剪(MEOW_APP_SDK.md §3,2026-08-31):当前 clip 矩形内才写像素,默认全屏。 + * meow_widget_draw(w) 画任何控件前 push 该控件矩形、画完 pop——任何控件(含 W_CUSTOM) + * 画不出自身边界,根治自定义画布越界脏区。可嵌套(入栈/出栈,push 与当前 clip 求交)。 + * 顶层 clip=全屏,故 IME/模态(snapshot+整帧路径)经 gfx 原语直绘全屏 scrim 时不受裁剪; + * meow_gfx_flush_hold 语义不依赖 clip(flush 只在解除后原子上屏)。 */ +void meow_gfx_clip_push(int x, int y, int w, int h); +void meow_gfx_clip_pop(void); + /* 标记整帧脏(launcher 手动脏模型桥接:自绘 raw 像素后标全屏,present 走 SDK)。 */ void meow_gfx_mark_full(void); diff --git a/meow_ui_log.c b/meow_ui_log.c index 39342c5..d0981c4 100644 --- a/meow_ui_log.c +++ b/meow_ui_log.c @@ -5,9 +5,9 @@ * fopen/fprintf),重复、易错、无分离/级别。本文件实现 SDK 统一 meow_log(): * * - app 一行调用 meow_log(MEOW_LOG_INFO, "start")(见 meow_ui.h); - * - SDK 启动时读 env:MEOW_LOG_DIR(日志目录)、MEOW_LOG_APP(app_id,无则 "app")、 - * MEOW_LOG_LEVEL(本 app 级别,无则默认 INFO)→ 写 - * `/apps//logs/<启动时间>_[._].log`(目录自动 mkdir -p), + * - SDK 启动时读 env:MEOW_LOG_DIR(日志目录,launcher 已注入到 logs/,含 app 分层)、 + * MEOW_LOG_APP(app_id,无则 "app")、MEOW_LOG_LEVEL(本 app 级别,无则默认 INFO)→ 写 + * `/<启动时间>_[._].log`(目录自动 mkdir -p), * 按 app 分目录 + 每次启动新文件(不同启动=不同文件,同一次启动内 O_APPEND 追加), * 级别过滤(lvl < level 丢弃); * - 格式:` [] message\n`(meow_ui_time_ms() 取毫秒); @@ -57,8 +57,8 @@ static char g_app_id[64] = "app"; /* env MEOW_LOG_APP,无则 "app" */ static char g_log_dir[256] = ""; /* env MEOW_LOG_DIR,无/空则降级 stdio */ static meow_log_level g_level = MEOW_LOG_INFO; /* 默认 INFO */ -/* M2.52:日志文件为 `/apps//logs/_[._].log`。 - * g_log_base 存不含序号后缀的路径前缀 `/apps//logs/_`; +/* M2.52:日志文件为 `/_[._].log`;M2.x 简化后 MEOW_LOG_DIR 已含 app 分层 + * (launcher 注入 logs/)。g_log_base 存不含序号后缀的路径前缀 `/_`; * g_log_seq 为轮转序号(0=首个文件无后缀;>0 追加 `_`)。两者均在 log_init() * (pthread_once 那次)里生成一次。 */ static char g_log_base[384] = ""; @@ -93,7 +93,7 @@ static void log_init(void) s = getenv("MEOW_LOG_DIR"); if (s && s[0]) snprintf(g_log_dir, sizeof g_log_dir, "%s", s); - /* M2.52:构建完整前缀 `/apps//logs/_`。 + /* M2.52:构建完整前缀 `/_`(M2.x 简化:MEOW_LOG_DIR 已含 app 分层)。 * ts 用 localtime 的 %Y%m%d_%H%M%S(启动时刻);尾拼 _ 防同秒重复启动撞名, * 从而每次启动=新文件,同一次启动内 O_APPEND 追加。若 log_dir 为空(无卡) * 则跳过(log_open 降级 stderr)。 */ @@ -103,8 +103,8 @@ static void log_init(void) struct tm tmnow; localtime_r(&now, &tmnow); strftime(ts, sizeof ts, "%Y%m%d_%H%M%S", &tmnow); - snprintf(g_log_base, sizeof g_log_base, "%s/apps/%s/logs/%s_%d", - g_log_dir, g_app_id, ts, (int)getpid()); + snprintf(g_log_base, sizeof g_log_base, "%s/%s_%d", + g_log_dir, ts, (int)getpid()); log_rebuild_file(); } @@ -138,7 +138,7 @@ static int log_mkdir_p(const char *path) return 0; } -/* M2.52:对 `/apps//logs` 增量 mkdir -p,并打开 g_log_file +/* M2.52:对 ``(M2.x 简化后已含 app 分层)增量 mkdir -p,并打开 g_log_file * (O_APPEND|O_CREAT;同一次启动内追加,不同启动=不同文件)。失败置 g_log_fallback。 * 首次由 meow_log 经 g_log_open_tried 守卫调用;轮转后由 meow_log 再次调用(目录已存在, * mkdir_p 幂等)。仅在持有 g_log_mu 时调用(g_log_base 已构建)。 */ @@ -146,7 +146,7 @@ static void log_open(void) { char logs[512]; if (!g_log_dir[0] || !g_log_file[0]) { g_log_fallback = 1; return; } - if (snprintf(logs, sizeof logs, "%s/apps/%s/logs", g_log_dir, g_app_id) >= (int)sizeof logs) { + if (snprintf(logs, sizeof logs, "%s", g_log_dir) >= (int)sizeof logs) { g_log_fallback = 1; return; } if (log_mkdir_p(logs) != 0) { g_log_fallback = 1; return; } @@ -165,7 +165,7 @@ static int log_spill_cmp(const void *a, const void *b) return 0; } -/* 每 App 总量清理:扫描 `/apps//logs/` 下所有 .log(跳过当前正写的 +/* 每 App 总量清理:扫描 `/`(M2.x 简化后已含 app 分层)下所有 .log(跳过当前正写的 * g_log_file),累计大小,超过 MEOW_LOG_TOTAL_MAX 则按 mtime 从最旧删到 ≤ 阈值。 * 只规整本 App 目录(进程隔离),节流调用(见 meow_log)。仅在持有 g_log_mu 时调用。 */ static void log_cleanup_old(void) @@ -178,7 +178,7 @@ static void log_cleanup_old(void) long total = 0; if (!g_log_dir[0] || !g_log_file[0]) return; - if (snprintf(logs, sizeof logs, "%s/apps/%s/logs", g_log_dir, g_app_id) + if (snprintf(logs, sizeof logs, "%s", g_log_dir) >= (int)sizeof logs) return; d = opendir(logs); if (!d) return; diff --git a/meow_ui_view.c b/meow_ui_view.c index 9ab349d..e1dc8e1 100644 --- a/meow_ui_view.c +++ b/meow_ui_view.c @@ -40,17 +40,24 @@ static meow_view *view_map_get(int id) return (id >= 0 && id < MEOW_VIEW_BY_ID_MAX) ? g_view_by_id[id] : NULL; } -/* 进入一个 view(置 ENTERED + on_enter)。 */ +/* 进入一个 view(置 ENTERED + on_enter),**递归 children**(子视图随父进出,§A.4)。 + * 进入顺序:父 on_enter 先(记录顺序 home.enter→demo.enter),随后子视图依递归逐个进入; + * 子视图的 on_draw 经 meow_draw_view_entered(含祖先已进入判定)保证父 on_enter 重绘时可见。 */ static void view_enter(meow_view *v) { if (!v || (v->state & MEOW_VIEW_STATE_ENTERED)) return; v->state |= MEOW_VIEW_STATE_ENTERED; run_fn(v->hooks.on_enter, v); + for (int i = 0; i < v->nchildren; i++) + view_enter(v->children[i]); } -/* 离开一个 view(清 ENTERED + on_leave;默认不销毁子 view/widget——弹回零重建)。 */ +/* 离开一个 view(清 ENTERED + on_leave;默认不销毁子 view/widget——弹回零重建), + * **递归 children**:先子后父(demo.leave→home.leave)。 */ static void view_leave(meow_view *v) { if (!v || !(v->state & MEOW_VIEW_STATE_ENTERED)) return; + for (int i = 0; i < v->nchildren; i++) + view_leave(v->children[i]); v->state &= ~MEOW_VIEW_STATE_ENTERED; run_fn(v->hooks.on_leave, v); } @@ -175,6 +182,36 @@ meow_view *meow_view_sub_pop(meow_view *v) return NULL; /* 预留 */ } +/* ============================================================ */ +/* 事件路由(§A.7:每个 view 的 on_event 先把事件发给后代(按 z 降序),命中即消费, + * 再落本 view 的控件)。SDK 提供递归树走;叶子 on_event 负责本 view 的 widget 命中。 */ +/* ============================================================ */ +static int view_dispatch_event(meow_view *v, int ev, int a, int b) +{ + if (!v || !(v->state & MEOW_VIEW_STATE_ENTERED)) return 0; /* 仅已进入的视图参与 */ + if (v->nchildren > 0) { + meow_view *kids[MEOW_VIEW_MAX_CHILD]; + int nn = v->nchildren; + for (int i = 0; i < nn; i++) kids[i] = v->children[i]; + /* 按 z 降序(同 z 保持挂载序稳定);z 同值时树序,靠后挂的在先。 */ + for (int i = 1; i < nn; i++) { + meow_view *key = kids[i]; + int j = i - 1; + while (j >= 0 && meow_view_z(kids[j]) < meow_view_z(key)) { kids[j + 1] = kids[j]; j--; } + kids[j + 1] = key; + } + for (int i = 0; i < nn; i++) + if (view_dispatch_event(kids[i], ev, a, b)) return 1; /* 子命中即消费 */ + } + if (v->hooks.on_event && v->hooks.on_event(v, ev, a, b, v->ctx)) return 1; /* 落到本 view 事件 */ + return 0; +} + +int meow_view_dispatch_event(int ev, int a, int b) +{ + return view_dispatch_event(g_top_view, ev, a, b); +} + /* ============================================================ */ /* 坐标 / 查询 */ /* ============================================================ */ diff --git a/meow_ui_view.h b/meow_ui_view.h index 0b221b9..729d703 100644 --- a/meow_ui_view.h +++ b/meow_ui_view.h @@ -80,6 +80,11 @@ void meow_view_page_push(int id); /* activity_push + 旧top on_leav void meow_view_page_pop(void); /* 旧top on_leave + activity_pop + 新top on_enter */ void meow_view_page_replace(int id); /* 旧top on_leave + 新页 on_enter(目标页须已 create) */ +/* 入口:把语义事件注入当前活动页 view 子树路由——先发子视图(按 z 降序),命中即消费, + * 再落本 view 的 on_event(其内做该 view 的 widget 命中)。返回 1=已消费(§A.7)。 + * 未接线于 meow_ui_run(App 可在 on_tap/on_swipe 等回调里改用它实现 SDK 原生路由)。 */ +int meow_view_dispatch_event(int ev, int a, int b); + /* ---- 页内子导航(预留扩展位 a;本批为空实现/桩,仅在 ACTIVITY view 内维护子栈)---- */ int meow_view_sub_push(meow_view *v, meow_view *sub); /* 预留;返回 0(未实现于本批) */ meow_view *meow_view_sub_pop(meow_view *v); /* 预留;返回 NULL(未实现于本批) */ diff --git a/meow_ui_widget.c b/meow_ui_widget.c index e3fc97b..4f8ef37 100644 --- a/meow_ui_widget.c +++ b/meow_ui_widget.c @@ -1204,6 +1204,10 @@ int meow_switch_get(meow_widget *w) { return w && w->type == W_SWITCH ? w->on : void meow_widget_draw(meow_widget *w) { if (!w) return; + /* 绘制期裁剪(§3):把绘制 clip 设为该控件矩形,画完恢复——任何控件(含 W_CUSTOM + * 自定义画布)不可能画出自身边界,从根上杜绝越界脏区。可嵌套(W_LAYOUT/W_CARD 递归 + * 子控件会再 push 子控件矩形);顶层 clip=全屏,故 IME/模态直绘不受影响。 */ + meow_gfx_clip_push(w->x, w->y, w->w, w->h); const meow_theme *th = meow_theme_get(); int disabled = widget_disabled(w); @@ -1616,4 +1620,5 @@ void meow_widget_draw(meow_widget *w) default: break; } + meow_gfx_clip_pop(); /* 恢复进入前的 clip(嵌套:回到父控件矩形/全屏) */ } diff --git a/test_ime_fix b/test_ime_fix index 87d348af09d93885fe41d11ad9e25b68d2845eea..14f793e155d26ea9cf7ba23b5b6345595900471c 100755 GIT binary patch delta 72692 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 delta 68861 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 delta 82621 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 I&^hP-0sM?z4gdfE diff --git a/test_meow_ui_widgets.c b/test_meow_ui_widgets.c index 266edb8..6dae3d2 100644 --- a/test_meow_ui_widgets.c +++ b/test_meow_ui_widgets.c @@ -14,6 +14,7 @@ */ #include "meow_ui.h" #include "meow_ui_internal.h" /* meow_ui_back_buf/pitch/bpp:真实像素断言 */ +#include "meow_ui_view.h" /* 任务② view 递归 + on_event 路由断言 */ #include #include #include @@ -95,6 +96,31 @@ static void free_all(void) /* §6.3 通用长按测试回调(开闸长按判定用;事件本身经 meow_input_pop 断言)。 */ static void lp_recv(int x, int y) { (void)x; (void)y; } +/* ---- 任务① 绘制期 clip:W_CUSTOM 越界绘制被裁掉(render 回调经 flag 切换越界)---- + * 控件几何硬编码为 (40,40,80,40)(与下方创建一致):meow_widget 是对外不透明类型, + * 测试经 meow_widget_custom_create(40,40,80,40,...) 建在同址,回调按常量绘制。 */ +static int g_custom_oob = 1; /* 1=画越界实心块+越界文本;0=只画控件内 */ +static void clip_oob_render(meow_widget *w, const meow_theme *th, void *ctx) +{ + (void)w; (void)th; (void)ctx; + meow_ui_fill_rect(45, 45, 20, 20, 0xFF0000); /* 控件 (40,40,80,40) 内:必画红块 */ + if (g_custom_oob) { + /* 越界(右/下,出控件矩形 [40..120)×[40..80)):应被 widget clip 裁掉 */ + meow_ui_fill_rect(140, 40, 60, 40, 0xFF0000); + meow_ui_text(160, 100, "OOB", 20, 0xFF0000); + } +} + +/* ---- 任务② view 递归 enter/leave + on_event 子>父:trace 顺序 + 命中计数 ---- */ +static int g_vtrace[16]; static int g_vtrace_n = 0; +static void vtrace_enter(meow_view *v, void *ctx) { (void)ctx; g_vtrace[g_vtrace_n++] = v->id; } +static void vtrace_leave(meow_view *v, void *ctx) { (void)ctx; g_vtrace[g_vtrace_n++] = -v->id; } +static int g_ev_child_hits = 0, g_ev_parent_hits = 0; +static int vev_child(meow_view *v, int ev, int a, int b, void *ctx) +{ (void)v; (void)ctx; if (ev == 7 && a == 10 && b == 10) { g_ev_child_hits++; return 1; } return 0; } +static int vev_parent(meow_view *v, int ev, int a, int b, void *ctx) +{ (void)v; (void)ctx; if (ev == 7) { g_ev_parent_hits++; return 1; } return 0; } + int main(void) { setenv("MEOW_UI_DUMP", "/tmp/b2.ppm", 1); @@ -361,6 +387,52 @@ int main(void) printf("PASS long-press: trigger/suppress-tap/short-tap/cancel-move/configurable/opt-in\n"); } + /* ---------- 任务① 绘制期 clip:W_CUSTOM 越界绘制被裁掉 ---------- */ + { + const meow_theme *thc = meow_theme_get(); + int bg_r, bg_g, bg_b; UNPK(thc->bg, bg_r, bg_g, bg_b); + meow_widget *cw = W(meow_widget_custom_create(40, 40, 80, 40, clip_oob_render, NULL, NULL)); + /* a) clip 生效:经 meow_widget_draw(push 控件矩形)→ 越界块/文本被裁掉 */ + g_custom_oob = 1; + meow_ui_clear(thc->bg); + meow_widget_draw(cw); + assert(region_has(45, 45, 20, 20, 0xFF, 0x00, 0x00) > 30); /* 控件内红块画出 */ + assert(px_near(40 + 80 + 25, 40 + 10, bg_r, bg_g, bg_b)); /* 越界实心块被裁 → bg */ + assert(px_near(40 + 80 + 45, 40 + 65, bg_r, bg_g, bg_b)); /* 越界文本被裁 → bg */ + /* b) 对照:无 clip 直绘同尺寸块会画出(证明是 clip 在裁) */ + meow_ui_clear(thc->bg); + meow_ui_fill_rect(40 + 80 + 20, 40, 60, 40, 0x00FF00); + assert(region_has(40 + 80 + 20, 40, 60, 40, 0x00, 0xFF, 0x00) > 100); + printf("PASS clip: W_CUSTOM out-of-bounds fill+text clipped by widget clip\n"); + } + + /* ---------- 任务② view 递归 enter/leave + on_event 子>父命中 ---------- */ + { + static const meow_view_hooks ph = { .on_enter = vtrace_enter, .on_leave = vtrace_leave, + .on_event = vev_parent }; + static const meow_view_hooks ch = { .on_enter = vtrace_enter, .on_leave = vtrace_leave, + .on_event = vev_child }; + /* 页 id 须 < MEOW_VIEW_BY_ID_MAX(32) 才能进 g_view_by_id(page_push 查找) */ + meow_view *pv = meow_view_create(3, MEOW_VIEW_ACTIVITY, &ph, NULL); + meow_view *cv = meow_view_create(4, MEOW_VIEW_CONTAINER, &ch, NULL); + assert(meow_view_add_child(pv, cv) == 0); + g_vtrace_n = 0; g_ev_child_hits = 0; g_ev_parent_hits = 0; + meow_view_page_push(3); /* 进入 pv → 递归进 cv:pv.on_enter→cv.on_enter */ + assert(g_vtrace_n == 2 && g_vtrace[0] == 3 && g_vtrace[1] == 4); + /* 命中 (10,10):先发子(按 z 降序),子命中即消费,父不再收 */ + assert(meow_view_dispatch_event(7, 10, 10) == 1); + assert(g_ev_child_hits == 1 && g_ev_parent_hits == 0); + /* 命中 (20,20):子不命中 → 落父 on_event */ + assert(meow_view_dispatch_event(7, 20, 20) == 1); + assert(g_ev_child_hits == 1 && g_ev_parent_hits == 1); + /* 离开 pv → 递归离开:cv.on_leave(-4) → pv.on_leave(-3) */ + g_vtrace_n = 0; + meow_view_page_pop(); + assert(g_vtrace_n == 2 && g_vtrace[0] == -4 && g_vtrace[1] == -3); + meow_view_free(pv); /* 递归释放 cv */ + printf("PASS view: recursive enter/leave order + on_event child>parent hit\n"); + } + /* ---------- 绘制所有控件到 back_buf(5x7 兜底),flush 出屏幕 ---------- */ const meow_theme *th = meow_theme_get(); meow_ui_clear(th->bg);