diff options
| author | Adam Malczewski <[email protected]> | 2026-06-13 22:04:29 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-13 22:04:29 +0900 |
| commit | 9fb0b7ff47429a9c0ccd79c759c5df9d55b161e6 (patch) | |
| tree | 7714d91519e5bd4d0926e3c131fef34826a9f8fe /packages/kernel/src/server.cpp | |
| parent | d5a6edf7c58f9646676d53c32009d6b884deffca (diff) | |
| download | unbox-9fb0b7ff47429a9c0ccd79c759c5df9d55b161e6.tar.gz unbox-9fb0b7ff47429a9c0ccd79c759c5df9d55b161e6.zip | |
kernel: regression tests for RmlUi clipping (scissor + stencil clip-mask)
The stage dock's rounded image cards were the first thing to exercise the
substrate's RmlUi clipping path (the slice-3 spike doc never used overflow /
border-radius). Investigated on report of square corners: the renderer's
clipping is CORRECT — added 4 headless+gles2 cases proving it (shm + dmabuf,
asymmetric so a flipped scissor Y would fail):
- overflow:hidden parent clips an oversized child (outside bands transparent);
- border-radius circle clip-mask rounds the corners (corners transparent);
- an image() decorator on a CHILD of a rounded overflow:hidden card clips to the
rounded shape (the dock's correct structure);
- a transformed rounded clip survives a set_size grow (the dock's real path).
The square-corner bug was RmlUi-core behavior — an element's own image()
decorator is not clipped to its own border-radius (a background-color rounds by
geometry; a decorator needs the clip mask, which self-render never sets) — fixed
in the dock by moving the decorator to a child. No renderer/substrate source
change. kernel 49 cases/208 assertions green on build + build-asan.
Diffstat (limited to 'packages/kernel/src/server.cpp')
0 files changed, 0 insertions, 0 deletions
