perf(sdk): clip_contains 逐像素函数调用→内联 (agent-235, MIPS汇编实证每像素省34指令,修demo滑动卡顿) + invalidate 分支加 clip 窗口收敛 overdraw
meow_ui.a→4ac08c6e; 三App重链已部署; 宿主四套件全PASS+视觉正确性验证; launcher不重链(不含绘制受影响路径,语义等价)
This commit is contained in:
1 parent
f01509d4f4
commit
cdaa51a541
15 files changed
+180
-11
No files matched your search
@@ -345,10 +345,15 @@ static void paint(int full, int x, int y, int w, int h)
|
||||
meow_ui_flush();
|
||||
} else {
|
||||
int r[4];
|
||||
/* 区域重画(meow_ui_invalidate):把绘制 clip 收敛到本次失效矩形,只画「真正相交且可见」的
|
||||
* 部分——大绘制物(整页 card/布局)仅擦边相交时不再整块重画,而是裁到矩形内,避免 overdraw。
|
||||
* 控件内部还会再 push 自身矩形(嵌套求交 = 矩形∩控件,语义不变:越界仍被裁)。 */
|
||||
meow_gfx_clip_push(x, y, w, h);
|
||||
for (int i = 0; i < nn; i++) {
|
||||
if (!entry_rect(order[i], r)) continue;
|
||||
if (rect_hit(r[0], r[1], r[2], r[3], x, y, w, h)) draw_one(order[i]);
|
||||
}
|
||||
meow_gfx_clip_pop();
|
||||
meow_ui_flush_region(x, y, w, h);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user