Commit Graph

3131 Commits

Author SHA1 Message Date
Chris Thrasher
068ae6f575
Return std::optional<Event> from sf::WindowBase::pollEvent 2023-11-09 21:47:53 -07:00
Chris Thrasher
1c873112ec
Return std::optional<Event> from sf::WindowImpl::popEvent 2023-11-09 16:52:56 -07:00
Chris Thrasher
bff2977f13
Remove unhelpful return value 2023-11-09 16:52:56 -07:00
Chris Thrasher
df284acefe
Remove declaration of unimplemented function 2023-11-09 16:52:56 -07:00
Chris Thrasher
5735fd09d9
Rewrite sf::Event API to improve type safety
This new API is built on top of std::variant. This allows us to
store many different event types in a space-efficient way and access
the active event type in a type-safe manner that eliminates the
categories of UB that are possible with unions.

Co-authored-by: kimci86 <kimci86@hotmail.fr>
2023-11-09 00:19:38 -07:00
Chris Thrasher
39ba64cfc6 Upgrade to Android NDK r24 2023-11-08 17:13:55 -07:00
binary1248
4fce7e4991 Embed MSVC debugging information when building using a compiler launcher in order to allow ccache to cache compiler output when running a CI workflow. 2023-11-07 10:31:00 -07:00
Chris Thrasher
9b223b45a5 Remove references to C compilers 2023-11-06 11:57:47 -07:00
Chris Thrasher
d672b3504e Add more tests for sf::Shape 2023-11-05 15:46:49 -07:00
Chris Thrasher
133bcda6cb Add more readability-identifier-naming rules 2023-11-05 15:05:25 -07:00
binary1248
2a8a01ca6c Perform the majority of GitHub Actions workflow MSVC building using Ninja with the exception of ClangCL+MSBuild. 2023-11-05 21:53:58 +01:00
binary1248
ea6cf002b6 Added support for running the GitHub actions workflow using CCache. 2023-11-04 00:37:18 -06:00
Lukas Dürrenberger
4faff85629
Merge 2.6.x to master 2023-11-01 23:25:16 +01:00
Chris Thrasher
0b3de0d8e2
Merge branch '2.6.x' to master 2023-11-01 11:08:57 -06:00
Chris Thrasher
7c8d1b5332 Use more sf::Vector operations
When dealing with calculations that are fundamentally two dimensional
it's helpful to use a 2D data type as much as possible rather than
decomposing the calculations into x and y components. The more we use
vector operations the better chance we have of easiliy reasoning about
what the code is doing.
2023-10-31 19:45:13 -06:00
André Polomat
9a4929c844 Fixed sockets not closing before being moved into 2023-10-31 19:43:40 -06:00
Chris Thrasher
7e927c488b Manage memory with std::unique_ptr 2023-10-31 19:37:59 -06:00
Chris Thrasher
4ec85b932e Unify SocketImpl headers
The two headers only differed in their inclusions and two type
aliases. It's easier to use the preprocessor than the maintain two
nearly identical files.
2023-10-31 17:09:20 -06:00
binary1248
8c9c5c5b99 Added missing SFML_USE_STATIC_STD_LIBS checks to CMake configuration. 2023-10-31 23:22:28 +01:00
Chris Thrasher
5d0996906b Manually inline all of sf::priv::ImageLoader
This layer of indirection was unnecessary. All of its functions
were only used once somewhere inside of Image.cpp. The code is shorter
and simpler and easier to reason about if we put the implementations
of these functions directly in Image.cpp.
2023-10-31 15:54:07 -06:00
Chris Thrasher
13dd9f59cf Manage memory with higher level constructs 2023-10-31 15:05:26 -06:00
Chris Thrasher
69ea0cd863 Update changelog 2023-10-29 18:03:26 -06:00
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