This reduces the size of both classes by 130 bytes which has positive
impacts on cache locality. This change also removes all the internal
invariants from both classes allowing them to be converted to
aggregate types in the future.
In the `ov_read` API, the fouth parameter says what endianness the
samples should be returned in - `0` for little-endian, and `1` for
big-endian. SFML wants samples in the host endian, so we need to set
this parameter to 1 on big-endian systems.
Fixes a unit test failure on big-endian systems.
If `XOpenIM` fails we will store a `nullptr` into `sharedXIM`. When
the shared `XIM` is destroyed we call the deleter `XCloseIM` on the
`nullptr` which segfaults.
Fix this by adding a new `closeIM` helper function which checks for
null first.
If `XInternAtom` is called with `onlyIfExists` set, then it can
legitimately return `None`. We should not cache this value because it
might change in the future.
This bug can sometimes be triggered because we use
`getAtom("UTF8_STRING", true)` and `getAtom("UTF8_STRING")`. If the
first call caches `None` because the atom didn't exist, then the
second call could return `None` instead of creating a new atom like it
should.
In 248fd6d we added a lot of 3rd party C source files. That means
building SFML has the additional requirement of needing a C compiler.
I would expect that all of this would be properly handled by those
upstream projects properly telling CMake to find a C compiler but
apparently that is not the case.
By removing `LANGUAGES CXX` we are telling CMake to fall back to its
default behavior to find a C and C++ compiler.
These are estimates. We don't necessarily have access to all prior
compiler releases and don't continuously test with these old
compilers so it's possible that we accidentally drop support in a
future v3 release even without raising the minimum C++ requirement.
This reverts commit 46a1b568a9 as it seems
to cause wrong reporting on pull request coverage info, likely due to
missing baselines from the master branch "push".
- Actually use the dimensions of the SFML window as the DRM mode
dimensions when setting a DRM mode.
- If SFML window dimensions don't match a valid DRM mode, show
the window contents on screen in the current mode instead of
simply failing to show anything.
- With these change the SFML examples are now working for me
- actually use the dimensions of the SFML window as the DRM mode
dimensions when setting a DRM mode.
- If SFML window dimensions don't match a valid DRM mode, show
the window contents on screen in the current mode instead of
simply failing to show anything.
- With these change the SFML examples are now working for me
Using \a command displays the next word in italics ignoring the markdown
format so \a `something` display `something` in italics including
backticks.
Removing \a so that backticks are properly interpreted.