Add portable game cleanup and fix canonical example startup - #169
Draft
proggeramlug wants to merge 1 commit into
Draft
Add portable game cleanup and fix canonical example startup#169proggeramlug wants to merge 1 commit into
proggeramlug wants to merge 1 commit into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Pong uses a blocking source loop and toggles pause every frame while P is held. Its first actual native runtime check also fails because six canonical examples use undefined names such as
Colors.White, while the public palette exposesColors.WHITE. Native linking had not caught those invalid values.Add optional
runGame(updateAndDraw, cleanup)support on native and web, move Pong onto that loop, and use edge-triggered pause input. The browser scheduler completes an active draw before cleanup, cancels future frames and disposes once on stop or frame failure. It rejects simultaneous loop starts and ignores cancelled callbacks from an older game. Existing callback-only calls remain supported. Correct all 51 invalid palette references in six examples and validate canonical palette names against the actual exported palette.Local validation passes: a fresh installed package simulates Jolt, captures all 16,384 expected pixels and records exactly one cleanup call in scene/direct-2D modes on Radeon DX12 and Vulkan. A separate real native callback-only compatibility probe also passes. Compiled Pong replay with a held P key yields
RPRPRPRPRusing the old check andRPPPPPPPPwith the fix. All 20 native examples link, and the same corrected Pong source plus the actual engine complete the web build with the scheduler included.Nine scheduler tests, nine web-command regressions, palette negative controls, repository and quality contracts, formatting, strict Clippy and WASM compilation pass. The initial palette runtime failure and intermediate input-staging audit mistake are retained in the evidence. No rendering baseline or threshold changes.
Stacked on #168. Hosted Tests run 34561587869 passes all 22 jobs, including both installed rendering modes with all expected pixels, native engine build and all 20 example links. Hosted source trees match the PR head. Native checks use the qualified Perry 0.5.1220 source/runtime profile and headless rendering; local DX12 has SDK compiler DLLs on PATH. Compiled-game browser rendering, all-example runtime acceptance, visible native presentation, packaged DXC, fixed updates and the complete one-command starter remain open. The public contract documents focus, timing and fatal-process cleanup limits. Relates to #142, #74, #140 and #145.
Published report and evidence retain the original palette startup failure, input-staging audit correction, cleanup and pause controls, exact final source and all final hosted results. ZIP SHA-256:
db70fbe196446d3648c238c5e770ceaeabcb8b28282e8012f08c3cdf447e928d.