iOS: pump_events / run_on_demand + ios_application_main bootstrap#1
Open
Jasper-Bekkers wants to merge 3 commits into
Open
iOS: pump_events / run_on_demand + ios_application_main bootstrap#1Jasper-Bekkers wants to merge 3 commits into
Jasper-Bekkers wants to merge 3 commits into
Conversation
SDL-style iOS event pump so winit can yield control on iOS: main is owned by ios_application_main which starts UIApplicationMain and runs the user entry as a deferred run-loop callback; pump_events/run_on_demand drive CFRunLoopRunInMode slices, reusing the existing control-flow observers. Enables the run_on_demand/pump_events modules for ios_platform. Compiles for aarch64-apple-ios; not yet device-tested. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Jasper-Bekkers
marked this pull request as draft
July 11, 2026 14:03
Jasper-Bekkers
marked this pull request as ready for review
July 11, 2026 14:05
Our pump_events port delivers lifecycle events (AboutToWait, …) during the redraw phase, so this warns every frame. It's expected under this model — log at trace so it stays discoverable without spamming (and without feeding in-memory log buffers). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Member
Author
|
This PR merges to v0.29.x but iirc evolve used the "for-evolve" branch. |
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.
iOS event-loop support needed to drive breda/Evolve on device. Based on
v0.29.x(the rev breda/Evolve pin).pump_events+run_on_demandfor iOS (SDL2-style), reusing the existing CFRunLoop observers/state machine; adds a handler-less launch path +install_handler/take_handler+exit_requested.winit::platform::ios::ios_application_main(entry: fn())— ownsmain, callsUIApplicationMain, defers the user entry viaperformSelector:afterDelay:0, then runs nestedCFRunLoopRunInModeslices.screen_frame(not the safe area) so it matches the Metal drawable.Verified:
cargo check --target aarch64-apple-ios --no-default-features --features rwh_06.Seam to tune on-device: the
CFRunLoopRunInModetimeout vs.BeforeWaiting-driven redraw cadence — aResumed-delivery race can leave a launch inactive/black.🤖 Generated with Claude Code