Skip to content

Native windowing backends for Windows and Linux (design + factory seam) #20

Description

@codymullins

Problem

Skyline.Apple gives macOS real native chrome (transparent/unified title bar) and is where native IME/a11y/cursor live. Windows and Linux only have the portable GLFW path. Eventually they want native backends for OS-native chrome and the native services GLFW can't reach.

Current state

  • src/Skyline/WindowBackendFactory.cs already picks a backend and reflectively loads Skyline.Apple on macOS, falling back to GLFW — the seam is extensible.
  • src/Skyline/IWindowBackend.cs is the contract; src/Skyline/AppKitChromeMap.cs shows the chrome-mapping pattern.

What's needed

  • A short design doc for Skyline.Windows (Win32) and Skyline.Linux (X11/Wayland) backends: window creation, event pump/threading contract, chrome mapping, surface factory, and the native services (cursor, IME, a11y, clipboard) they'd own.
  • Extend the factory to try-load these by name before GLFW, falling back cleanly.
  • Optional stub projects to lock the seam.

Acceptance criteria

  • Design doc agreed; factory extension (or documented plan) in place. GLFW remains the supported fallback — this is not required to ship cross-platform on GLFW.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:windowWindow lifecycle, state, and servicesenhancementNew feature or requestplatform:linuxLinux (X11/Wayland) backendplatform:windowsWindows backendpriority:futurePolish / advanced; can waitstarling-supportWork required for Skyline to host the Starling browser shell

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions