Skip to content

Windowing foundation: one model, decided once a frame, tested without a screen #243

Description

@foxnne

The plan is docs/WINDOWING_FOUNDATION_PLAN.md (#246). Every step keeps today's behaviour. They make the windowing (floats, menus, dialogs, view drags, drop zones) testable without a screen and cheap in native calls, share one model across platforms, and leave the backend usable by any dvui app. It builds on NATIVE_WINDOWS_PLAN.md and WINDOWS_LINUX_GLASS_PLAN.md, and doesn't repeat them.

Findings from the 2026-10-08 review are in the doc. In short:

  • one Viewport struct serves five kinds of window;
  • Popout re-decides every window by hand each frame, through five near-copies of fill-and-present;
  • there are seven coordinate spaces and two different band thresholds;
  • drag hit tests repeat once per region per frame;
  • macOS makes about 20 Objective-C messages per float per frame, changed or not;
  • glass looks are mirrored four deep and the shader is hand-synced three ways;
  • 32 layout tests never ran;
  • nothing popped out is tested.

Steps, each its own PR:

Activity

  1. foxnne commented on Oct 8, 2026

    @foxnne
    CollaboratorAuthor

    Plan doc: the PR above (docs/WINDOWING_FOUNDATION_PLAN.md). Step 1: #244. Step 2: #245 (draft until seen running).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions