Skip to content

Feat/logical UI scaling - #437

Draft
flsobral wants to merge 116 commits into
masterfrom
feat/logical-ui-scaling
Draft

Feat/logical UI scaling#437
flsobral wants to merge 116 commits into
masterfrom
feat/logical-ui-scaling

Conversation

@flsobral

@flsobral flsobral commented Aug 3, 2026

Copy link
Copy Markdown
Member

Closes #433

@flsobral flsobral added this to the 7.3.0 milestone Aug 3, 2026
@flsobral flsobral self-assigned this Aug 3, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in Release 7.3.0 Aug 3, 2026
@flsobral flsobral moved this from Backlog to In progress in Release 7.3.0 Aug 3, 2026
@flsobral
flsobral force-pushed the feat/logical-ui-scaling branch from b09a01a to ce56078 Compare August 4, 2026 00:34
@flsobral
flsobral force-pushed the feat/logical-ui-scaling branch 3 times, most recently from 4a1ea52 to f02a0f0 Compare August 12, 2026 18:00
Keep Android surface creation, destruction, pause/resume, and keyboard shifts
outside the SCREEN_CHANGED event payload so TScreenSurface owns the committed
screen configuration and pending lifecycle changes.

Store EGL, native-window, contentScale, and fontScale state in the surface
extension, remove sentinel-based globals, and convert touch coordinates from
physical to logical units. Preserve SCREEN_CHANGED as a notification with
zeroed legacy arguments while routing Graphics scale values from the active
surface.

Validated copyright headers, staged diff checks, and the Android Java compile
task. Full native Android release and runtime semantic validation remain
deferred.
@flsobral
flsobral force-pushed the feat/logical-ui-scaling branch from f02a0f0 to 24c5585 Compare August 12, 2026 18:36
- preserve the orthogonal position in PathAnimation when explicitly requested
- keep legacy PathAnimation behavior for existing consumers
- fix TopMenu animations so they no longer override safe-area positioning
- lay out SlidingWindow using its final safe-area-aware bounds before animating
- start SlidingWindow offscreen without relaying out its contents
- avoid briefly displaying SlidingWindow at its final position before the animation
- keep SlidingWindow geometry consistent after screen resize and rotation
Exercise Window-based TopMenu, SlidingWindow, and SideMenu through the JavaSE preview renderer with portrait and asymmetric landscape insets, animation frames, reopen, resize, outside dismissal, and Back/Escape.
Keep screen dimensions, safe areas, layout, fonts, and input in logical
units while deriving the Java Launcher framebuffer and pitch from density.

Rasterize Control and Window primitives, text, images, copies, screenshots,
alpha, fading, and raw pixel operations at the simulated content scale. Keep
AWT monitor transforms and scale limited to host presentation.

This changes Java simulator rendering only; native runtime behavior and
packaged artifacts remain unchanged.

Validate density 1, 2, and 3 with the focused simulator, graphics, layout,
safe-area, and AWT suites. The full SDK suite retains the known
order-dependent LegacySafeAreaVisualTest failure; its isolated rerun passes.
@flsobral
flsobral force-pushed the feat/logical-ui-scaling branch from 24c5585 to f725905 Compare August 12, 2026 18:41
Keep the SLJIT JIT library private to the VM target and disable the
SLJIT JIT option for Android native builds, where this configuration is not
intended to be enabled. This prevents the JIT linkage from propagating and
keeps Android builds on the supported non-JIT path.

Validated copyright headers and the cached diff check. Full native and Android
builds were deferred because this focused configuration change does not require
a release build for commit validation.
Add a dedicated safe-area bridge header so Darwin event code no longer includes Window.h, avoiding duplicate SIP_* enumerators already provided by sipargs.h.
Run commit-message and copyright checks inside checkout-source so failed
validation gates downstream builds without another runner.
Move the checkout-source native dependency matrix into a focused repository script while preserving sequential execution and environment overrides. Resolve default releases from depot-tools deps.yml instead of stale per-fetcher defaults.\n\nFetch seven target-specific Skia pairs without shared content, then invoke one release-wide shared installation. The dry-run contract proves 71 sequential fetch commands, seven Skia targets, one shared Skia operation, and one SQLite repository/tag identity across seven targets.
Make checkout-source package the exact provenance-marked depot-tools revision and native installations it prepared, then upload that current-run artifact for six platform consumers. Downstream jobs extract it at the canonical path instead of using actions/cache as their transport boundary.\n\nKeep the producer cache as optional acceleration and retain the existing SDK runtime artifact. Focused tests verify selected archive contents, exclude stale installs and Git metadata, validate extraction, and assert that every prior cache consumer now uses the producer artifact.
Record the completed cross-repository implementation, request-count evidence, checksum coverage, prepared artifact measurements, focused validation, and logical commit boundaries.\n\nLeave the state at the explicit publication handoff: depot-tools must be published through c5b80eb and TotalCross must later advance repo-2026.08.12 to an immutable reference before remote CI can validate the new workflow.
@flsobral
flsobral force-pushed the feat/logical-ui-scaling branch from 426fe92 to 9b0972a Compare August 12, 2026 23:50
Point TotalCross at the immutable repo-2026.08.13 tag so builds
consume the published depot-tools updates for verified native
dependency artifacts.

Validated the staged header and whitespace checks and confirmed the tag exists
on the configured depot-tools origin. Platform builds and remote CI remain
deferred.
@flsobral
flsobral force-pushed the feat/logical-ui-scaling branch from 9b0972a to 6c9440d Compare August 13, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

Text large and distorted when rendered onto an image

1 participant