Limits of runtime resolution changes in Monogame windowed mode for accessibility
0 reputation · 02 Jan 2021, 03:21 UTC
Goal: Allow users with low vision to adjust the render resolution at runtime while the game runs in windowed mode, thereby scaling UI elements without restarting the application.
Constraint: Monogame requires GraphicsDeviceManager.IsFullScreen to be set to false and the preferred back buffer dimensions to be changed before calling ApplyChanges(); the exact behavior of the client size after ApplyChanges() and the preservation of existing render targets varies between Monogame 3.6, 3.7, and 3.8 releases.
Questions: Does calling ApplyChanges() after updating PreferredBackBufferWidth and PreferredBackBufferHeight retain the current render target contents? Is the resulting client size guaranteed to match the requested dimensions, or does the window manager add non‑client borders that affect the usable drawing area? Are there any known regressions in windowed mode that prevent proper DPI scaling for accessibility‑focused UI?