chore: migrate core windowing/rendering stack to latest APIs#434
Open
sjuxax wants to merge 1 commit into
Open
Conversation
- upgrade the main platform/rendering dependencies: glyphon 0.3 -> 0.10 wgpu 0.16 -> 28 winit 0.28.7 -> 0.30 taffy 0.3.19 -> 0.9 resvg 0.39.0 -> 0.45.0 fontdb 0.14.1 -> 0.22 - refactor app startup and event handling around winit 0.30’s ApplicationHandler/run_app model, including deferred window creation, explicit event loop proxy wiring, and moving runtime UI state out of the old closure-based event loop - update renderer initialization and frame submission for modern wgpu: safe surface creation with Arc<Window>/Surface<'static>, new InstanceDescriptor and DeviceDescriptor fields, pipeline layout immediates, optional shader entry points, updated render pass descriptors, frame latency config, broader surface error recovery, and guards against empty lyon buffer submissions that now panic on wgpu 28 - migrate text rendering to the new glyphon/cosmic-text APIs by introducing Cache and Viewport management, updating TextAtlas/TextRenderer prepare+render calls, adjusting buffer sizing/shaping, and extending text areas with custom_glyphs - port image rendering and SVG handling to new wgpu/resvg APIs: replace deprecated texture copy types, update sampler/pipeline creation, and simplify SVG rasterization around the newer usvg/resvg flow - modernize keyboard/input handling for winit 0.30 by replacing VirtualKeyCode/ScanCode usage with NamedKey, Character, KeyCode, and KeyEvent/PhysicalKey-based translation, plus updated modifier handling, defaults, serialization, mappings, and tests - adapt table/layout code to taffy 0.9 by switching to TaffyTree, new measurement/context APIs, and updated sizing helpers while keeping hover/layout behavior intact - remove direct raw-window-handle clipboard setup in favor of the default clipboard provider path, and refresh related CLI/tests/snapshots/lockfile - add migration documentation and API audit notes to capture the upgrade strategy and changed integration points
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Caveat: generated with combination of Opus 4.6 and GPT-5.4-Codex.
upgrade the main platform/rendering dependencies: glyphon 0.3 -> 0.10 wgpu 0.16 -> 28 winit 0.28.7 -> 0.30 taffy 0.3.19 -> 0.9 resvg 0.39.0 -> 0.45.0 fontdb 0.14.1 -> 0.22
refactor app startup and event handling around winit 0.30’s ApplicationHandler/run_app model, including deferred window creation, explicit event loop proxy wiring, and moving runtime UI state out of the old closure-based event loop
update renderer initialization and frame submission for modern wgpu: safe surface creation with Arc/Surface<'static>, new InstanceDescriptor and DeviceDescriptor fields, pipeline layout immediates, optional shader entry points, updated render pass descriptors, frame latency config, broader surface error recovery, and guards against empty lyon buffer submissions that now panic on wgpu 28
migrate text rendering to the new glyphon/cosmic-text APIs by introducing Cache and Viewport management, updating TextAtlas/TextRenderer prepare+render calls, adjusting buffer sizing/shaping, and extending text areas with custom_glyphs
port image rendering and SVG handling to new wgpu/resvg APIs: replace deprecated texture copy types, update sampler/pipeline creation, and simplify SVG rasterization around the newer usvg/resvg flow
modernize keyboard/input handling for winit 0.30 by replacing VirtualKeyCode/ScanCode usage with NamedKey, Character, KeyCode, and KeyEvent/PhysicalKey-based translation, plus updated modifier handling, defaults, serialization, mappings, and tests
adapt table/layout code to taffy 0.9 by switching to TaffyTree, new measurement/context APIs, and updated sizing helpers while keeping hover/layout behavior intact
remove direct raw-window-handle clipboard setup in favor of the default clipboard provider path, and refresh related CLI/tests/snapshots/lockfile
add migration documentation and API audit notes to capture the upgrade strategy and changed integration points