Windowing foundation: one model, decided once a frame, tested without a screen
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
調査の方向性
Start with docs/WINDOWING_FOUNDATION_PLAN.md, which contains the review findings and breaks the work into separate PRs; note the stated dependencies on #237, #238, and #242. Choose one step and follow its named scope, such as running the app module tests in step 1 or measuring Objective-C messages in step 4. Done means completing that step while preserving today's behaviour; this issue describes a broad, multi-step plan rather than a single newcomer-sized change.
索引モデルが issue の本文から書いたものです。
説明
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
Viewportstruct 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:
- 1. Run the
appmodule's own tests (32 that never ran): #244 - 2. Menus and dialogs stay auxiliary windows on macOS: #245
- 3. Typed coordinate spaces and one
bandOfinviewport_map, after #237 and #238 - 4.
OsWindow: kinds as a union, native handles cached, dressing applied only on change, per-kind budgets (measure Objective-C messages per frame before and after) - 5. The frame's windows as a pure plan the backend reconciles, plus a fake backend and the first integration tests that pop a float out
- 6. One
fillfor every OS window, with a target pool - 7. A drag model computed once a frame, with tests, and the release rules in one table
- 8. Float, window and drag lifecycles as explicit states
- 9. Glass: published capabilities, one look record end to end, shader parity (after #242)
- 10. Full-screen transitions driven by Core Animation, if release builds don't hold 8.3 ms
- 11. dvui changes on the fork (subwindow render redirection, a screens hook, subwindow kind and parent), the backend as a package, and dvui's example app as the acceptance test
- 12. Remove the dead viewport API, along with steps 3–5
- 主要言語
- Zig
- スター
- 1.5k
- フォーク
- 40
- 平均マージ
- 5時間 35分
- マージ済み PR(30日)
- 151
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
fizzyedit/fizzy のほかの issue
-
replay: bench-replay no longer compiles, and nothing in CI builds it対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
fizzyedit/fizzy#306 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 8/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
メンテナーはふだん 1 日以内に返信
fizzyedit/fizzy の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
better-auth/better-auth#11723 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement from-review
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
khuisman/mcp-gee-sweet#1010 ·
メンテナーはふだん 1 日以内に返信
-
Worker-Erstellung bricht langsame Git-Worktree-Checkouts nach 20 Sekunden ab対応中かも @KajoVanBuyten が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
AgentSystemLabs/agent-office#367 ·
メンテナーはふだん 1 日以内に返信
-
area: backend bug priority: high
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
snapotter-hq/SnapOtter#2423 ·
メンテナーはふだん 1 日以内に返信
-
area::tern difficulty::easy good first issue kind::bug triage::ready
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100