Fix pygame.camera backend detection on Windows Server #4221
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.
The code for pygame.camera backend detection trips when running on a Server variant of modern Windows, causing initialization of the camera system to fail entirely, as can be seen in this traceback generated on my Windows Server 2022 system:
Obviously, Windows Server with the standard desktop environment installed runs the rest of pygame just fine, as it supports webcams at a system level just fine, and this issue has only to do with the version detection code being written without Server in mind.
This commit simply expands the Windows version checking code to make sure that both desktop and Server Windows are handled correctly. I checked how Python returns the Windows version code (
_WIN32_SERVER_RELEASES
in platform.py) and my code should handle every possible case. The minimum version check for Windows Server is set at version 2012, as that's equivalent to desktop version 8 as already present in the code before.