[Agent] feat: AspectRatioOverride enum — Phase 2 of Screen Scaling standardization#3619
[Agent] feat: AspectRatioOverride enum — Phase 2 of Screen Scaling standardization#3619github-actions[bot] wants to merge 1 commit into
Conversation
|
🤖 PR created. AI review starting automatically. |
47aee48 to
e448000
Compare
15b7225 to
0ee962a
Compare
2bca529 to
59a8305
Compare
617a38d to
dfd20ee
Compare
dfd20ee to
7272ebc
Compare
|
👋 Triage pass — this Please react on this comment so I know what to do:
No reaction within 7 days → I'll close as stale. Re-open any time if you change your mind. |
✅ Rebase Conflict ResolvedCompleted
Conflict Summary
|
|
👍 Still wanted — rebase needed. This PR introduces the To rebase: you can run
Ready to proceed whenever you are. |
|
🤖 Merge conflict detected — Claude has been dispatched to resolve the conflicts automatically. If conflicts cannot be resolved cleanly, the workflow will post a comment explaining what needs manual attention. |
✅ Rebase Conflict ResolvedConflict
ResolutionAccepted develop's removal — the intent of both sides was to ship the new scaling path permanently. Develop went one step further by removing the feature flag altogether (making the new path unconditional), which supersedes the PR's change of setting it to The PR's other changes (AspectRatioOverride enum, CoreOptional protocol extension, tests, reviewer-context.md, changelog) are fully preserved. Rebased onto
|
…ation - Add AspectRatioOverride enum to PVPrimitives (auto/4:3/16:9/1:1/8:7/stretch) with displayName, subtitle, symbolName, aspectRatioValue, and isWidescreen metadata - Extend CoreOptional protocol with supportedAspectRatioOverrides and preferredAspectRatioOverride; default impls return .auto (no-op for all existing cores) - Enable scalingModeRenderer feature flag by default (was: disabled, gated behind flag) - Add AspectRatioOverrideTests covering raw values, CaseIterable, Codable, and display metadata - Update reviewer-context.md with ScalingMode + AspectRatioOverride review rules Part of #2673 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
Phase 2 of the Screen Scaling standardization epic (#2673), following the merged Phase 1 (#3616).
AspectRatioOverrideenum — new type inPVPrimitiveswith 6 cases (auto,ratio_4_3,ratio_16_9,ratio_1_1,ratio_8_7,stretch). Each case carriesdisplayName,subtitle,symbolName,aspectRatioValue, andisWidescreenmetadata for UI use.CoreOptionalprotocol extensions —supportedAspectRatioOverrides(which overrides the core supports) andpreferredAspectRatioOverride(the currently selected one). Default implementations return[.auto]/.autoso all existing cores are completely unaffected.scalingModeRendererby default — the feature flag introduced in Phase 1 is nowenabled: true. The newScalingMode-driven renderer paths (Stretch, Aspect Fill, Integer Scale, Native Resolution) are active for all users. LegacynativeScaleEnabled/integerScaleEnabledshims remain for backwards compatibility.AspectRatioOverrideTestscovers raw values,CaseIterable,Codableround-trip,aspectRatioValue,isWidescreen, and display metadata..github/prompts/reviewer-context.mdwith Phase 1/2 review rules.What's Next (Phase 3)
Per-core wiring: cores that already have aspect ratio / widescreen support (Dolphin, PPSSPP, Flycast, DuckStation, Gearcoleco) will override
supportedAspectRatioOverridesandpreferredAspectRatioOverrideto read from their existingCoreOptionkeys.Test plan
cd PVPrimitives && swift test—AspectRatioOverrideTestsall passProvenance-Litescheme —scalingModeRendererflag now active by default; verify all ScalingMode picker values work in Settings > VideoPart of #2673