Commit Graph

3159 Commits

Author SHA1 Message Date
Chris Thrasher
7f57bb4fe6 Update version to 2.6.1 2023-10-29 18:03:26 -06:00
Chris Thrasher
5cf740fd93 Remove output parameter from sf::Image::saveToMemory 2023-10-28 17:58:21 -06:00
Chris Thrasher
0fcd1dd0f1 Add tests for sf::Image::loadFromFile failure 2023-10-27 19:21:36 -06:00
Chris Thrasher
fd2c42c7d1 Add tests for sf::Image::saveToMemory 2023-10-27 19:21:36 -06:00
Chris Thrasher
9a8ca3227f Add UBsan to CI 2023-10-27 16:36:38 -06:00
André Polomat
014366b84a Updated the test for the maximum antialiasing level of render texture
it returns 32 on my system, 64 should still be a reasonable value
2023-10-27 12:46:27 -06:00
Chris Thrasher
0512748fce Run clang-tidy on OpenGL ES codepaths 2023-10-26 22:11:59 -06:00
Chris Thrasher
e2e0f36d98 Fix warnings in Linux OpenGL ES codepaths
Because CI didn't cover this code we didn't know there were
warnings in these codepaths to address.

Not sure why GCC's -Wduplicated-branches is being emitted or how
exactly to fix it. It's easier to simply ignore it in this one
particular file.
2023-10-24 08:44:42 -05:00
Lukas Dürrenberger
e45628e2eb Add a support file 2023-10-23 11:41:04 -05:00
Lukas Dürrenberger
7d0fa3c3fa Add new versions of the issue templates 2023-10-23 11:41:04 -05:00
Lukas Dürrenberger
326ccf8f81 Ignore description text in the PR template 2023-10-23 11:41:04 -05:00
Chris Thrasher
2cbcd60a45 Remove redundant link library
Clang was warning about this

  ld: warning: ignoring duplicate libraries: 'lib/libsfml-system-s-d.a'
2023-10-23 13:07:27 +02:00
Chris Thrasher
6fa330d077 Prefer C++ standard lib over C standard lib 2023-10-22 22:57:04 -05:00
Chris Thrasher
6aabb75bcf Fix sf::Image tests
Bitten by a copy pasta error. We can't test for exact pixel values
since jpeg compression changes pixel values slightly.
2023-10-21 12:44:51 -05:00
Chris Thrasher
1c037e1cba Add tests for sf::Image::saveToFile 2023-10-20 23:53:18 -05:00
Chris Thrasher
9b92e2e68e Assert that sf::Image::{set|get}Pixel coordinates are within bounds
Yay catching more UB :)
2023-10-20 23:53:18 -05:00
Chris Thrasher
fb873548b6 Print file extension when not recognized 2023-10-20 23:53:18 -05:00
Chris Thrasher
bb1a465e50 Add cppcoreguidelines-pro-type-member-init clang-tidy check
This marks another good step towards systematically rooting out
undefined behavior in the form of reading uninitialized memory.
2023-10-17 21:41:36 -05:00
Chris Thrasher
63eff96581 Add cppcoreguidelines clang-tidy checks
The following checks have been added:

    cppcoreguidelines-avoid-capturing-lambda-coroutines
    cppcoreguidelines-avoid-goto
    cppcoreguidelines-avoid-reference-coroutine-parameters
    cppcoreguidelines-c-copy-assignment-signature
    cppcoreguidelines-explicit-virtual-functions
    cppcoreguidelines-interfaces-global-init
    cppcoreguidelines-misleading-capture-default-by-value
    cppcoreguidelines-missing-std-forward
    cppcoreguidelines-noexcept-destructor
    cppcoreguidelines-noexcept-move-operations
    cppcoreguidelines-noexcept-swap
    cppcoreguidelines-pro-type-cstyle-cast
    cppcoreguidelines-slicing
    cppcoreguidelines-use-default-member-init
    cppcoreguidelines-virtual-class-destructor
2023-10-17 12:36:49 -05:00
Chris Thrasher
0de21b8ce3 Promote Windows Unity build jobs to main CI matrix 2023-10-16 13:45:01 -05:00
Chris Thrasher
4ff0dabba3 Promote Windows OpenGL ES jobs to main CI matrix 2023-10-16 13:45:01 -05:00
Chris Thrasher
12439919c7 Promote Linux OpenGL ES jobs to main CI matrix 2023-10-16 13:45:01 -05:00
Chris Thrasher
bdd6ad5145 Promote DRM jobs to main CI matrix 2023-10-16 13:45:01 -05:00
Bruno Van de Velde
13c8a1de4e Fixed texture being upside down on Android when copying the texture of a RenderTexture 2023-10-12 15:22:37 -05:00
Bruno Van de Velde
67c9019eda Fixed texture being upside down on Android when copying the texture of a RenderTexture 2023-10-09 09:59:33 -06:00
Chris Thrasher
fb88d1a8b3 Set Bash as the default shell 2023-10-09 00:22:34 -06:00
Chris Thrasher
f98ff0d26a Assert against division by zero in public APIs
Yet another class of UB we can eliminate in debug builds.
2023-10-08 20:02:38 -06:00
binary1248
25bb6637eb Cache packages downloaded when GitHub actions workflow is run. 2023-10-08 16:48:53 -06:00
binary1248
90ebf68ba3 Added GitHub Actions jobs to build with OpenGL ES on Linux GCC. 2023-10-08 12:13:41 -06:00
binary1248
fe778028a2 Fixed RenderTarget tracking not being notified to update its active target when an FBO RenderTexture is display()ed. Fixes #2630 2023-10-08 11:37:18 -06:00
Chris Thrasher
c0061797e3 Add more tests for sf::Window 2023-10-05 17:41:29 -06:00
Chris Thrasher
e638d7a5e9 Simplify how tests are automatically re-ran in CI
The flakiness is theoretically limited to Linux where we have to
use xvfb-run in CI. Because the tests are ran on Linux via ctest
we can more easily use CTest's built-in support for rerunning
failed tests. We have yet to actually observe this flakiness after
the other changes added in #2474 so it's possible the flakiness
has been entirely addressed.

While I was at it I de-duplicated some code for printing OpenGL
information.
2023-10-05 16:56:05 -06:00
Chris Thrasher
b856d806be Improve sf::FileInputStream test coverage 2023-10-05 16:46:31 -06:00
Bruno Van de Velde
46ba176463 Fixed compiling on Linux with SFML_OPENGL_ES 2023-10-05 14:11:31 -06:00
binary1248
e1fe3fdb06 Manually install MinGW when running GitHub Actions workflows. 2023-10-04 18:31:38 +02:00
binary1248
75be07fa34 Fix CMake minimum required version being too low to support specifying SYSTEM in target_include_directories for Visual Studio generators. 2023-10-03 21:04:47 -06:00
Chris Thrasher
793ee75873 Only install MinGW when necessary
Installing MinGW 11 takes way too long to tolerate doing this in
all Windows jobs.
2023-10-03 02:42:22 +02:00
Chris Thrasher
9d1d9cde33 Remove Intel oneAPI CI jobs
These started spontaneously failing due to some Debian package
repository key issues.

https://github.com/SFML/SFML/actions/runs/6365368228/job/17282319034#step:6:40
2023-10-01 21:39:58 +02:00
Chris Thrasher
cc147e5827 Install an older version of MinGW
Version 12 changes to URCT instead of MSVCRT which causes linker
issues with all the prebuilt MinGW binaries. This is still a liability
that will have to eventually be fixed.
2023-09-30 18:50:10 -06:00
Chris Thrasher
732115820b Revert "Disable MinGW jobs until linker errors are addressed"
This reverts commit 3acb69e347.
2023-09-30 18:50:10 -06:00
Chris Thrasher
cbec344876 Use one InputImpl.hpp header for all implementations
There were 6 copies of InputImpl.hpp for Windows, macOS, Linux,
Linux DRM, iOS, and Android. All but Windows and Linux DRM were
identical so there's already an easy opportunity for consolidation.

The Windows header included some additional private static functions
and data. An equivalent way of expressing this is via more data and
functions instead the anonymous namespace of Win32/InputImpl.cpp so
that's what I did. To fix some issues with functions being used
before they're defined I moved number of functions into the anonymous
namespace of that file which resulted in adding `sf::` in lots of places.

InputImplUDev.hpp used by the DRM backend was trickier because includes
WindowImplDRM as a friend. This creates a weird dependency graph where a
distant class can call private functions that mutate private state. I
kept the definitions of those functions inside DRM/InputImpl.cpp while
moving their declaration to WindowImplDRM.cpp which is the only file
where they're used. This is a bit odd but it avoids using the
preprocessor and ensures that only the file that needs these functions
can call them.

In the end I was able to delete all 6 separate copies of InputImpl.hpp
and consolidate them into src/SFML/Window/InputImpl.hpp saving nearly
1,000 lines of code.

Because `sf::priv::InputImpl` is merely a set of static functions I
converted this class to a simple namespace. The use of a namespace is
what ultimately allowed me to untangle the DRM functions that were not
present in other implementations
2023-09-30 14:16:12 -06:00
Chris Thrasher
56784e198b Remove header include cycles 2023-09-29 15:55:39 -06:00
Chris Thrasher
1e4aed8700 Fix clang-tidy readability-container-size-empty warnings 2023-09-29 15:55:39 -06:00
Chris Thrasher
10d8f5bf1e Silence new clang-tidy-17 checks 2023-09-29 15:55:39 -06:00
Chris Thrasher
dbb87db026 Add more tests for sf::Text 2023-09-28 12:41:29 -06:00
Chris Thrasher
3f6403e279 Stop manipulating standard library flags for macOS builds 2023-09-25 22:41:36 -06:00
Chris Thrasher
52de41294e Assert against invalid function name
In testing I tried passing `nullptr` to this function which caused
a segfault on Linux. If we know that's an invalid input then lets
assert against it.
2023-09-24 21:12:18 -06:00
Chris Thrasher
3750074238 Add tests for sf::Vulkan 2023-09-24 21:12:18 -06:00
Chris Thrasher
f40d5ac21d Add tests for sf::Joystick 2023-09-24 20:58:41 -06:00
Chris Thrasher
856a81f62b Assert against out of bounds array access in sf::Joystick
sf::JoystickManager is a private type but the sf::Joystick API calls
into it so those asserts are still prone to fail due to incorrect
user input.

Yay for catching more UB :)
2023-09-24 20:58:41 -06:00