Add workaround for Pyglet 2.1 DPI scaling issues #2377
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.
Motivation
This update resolves a backward compatibility issue introduced in Pyglet 2.1, where the new default DPI settings may lead to incorrect window sizing and positioning on HiDPI displays. (Pyglet 2.1 is automatically used as a default backend in moderngl_window)
Proposed Changes
PYGLET_DPI_SCALING
environment variable. Users can set it toscaled
orstretch
to restore expected behavior.manimlib/window.py
to readPYGLET_DPI_SCALING
at startup and apply it topyglet.options.dpi_scaling
(if available). A stderr warning is emitted when running against older Pyglet versions that lack this option.This should allow to restore prior DPI behavior without requiring a downgrade or switching default value, which requires rigorous testing.