Commit Graph

3064 Commits

Author SHA1 Message Date
Chris Thrasher
1d16d8ea36
Revert "Disable MinGW jobs until linker errors are addressed"
This reverts commit 3acb69e347.
2023-09-26 19:54:56 -06:00
Lukas Dürrenberger
d424a3c702 Replace FreeType binaries with FetchContent 2023-09-26 09:25:45 +02: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
Chris Thrasher
d6c18af926 Use cross-platform threading library target 2023-09-24 20:57:33 -06:00
Chris Thrasher
3acb69e347 Disable MinGW jobs until linker errors are addressed
See https://github.com/SFML/SFML/issues/2700
2023-09-22 14:46:27 -06:00
Chris Thrasher
739129d009 Install Ninja in CI
https://github.com/actions/runner-images/issues/8343#issuecomment-1727810519

Ninja's presence in the Windows images was due to it being a
transitive dependency of another packages. It was never guaranteed
to be present. The actions/runner-images devs do not plan on adding
it so we're forced to install it ourselves.
2023-09-22 14:46:27 -06:00
Chris Thrasher
ff5eaca6a2 Add more tests for sf::VideoMode 2023-09-19 13:43:28 -06:00
Chris Thrasher
3a0d074b2f Remove trailing whitespace
Some of these files either aren't processed by clang-format or the
trailing whitespace existed within blocks of code where we disabled
clang-format.
2023-09-19 13:30:27 -06:00
Chris Thrasher
910514871e Remove unnecessary CI step
clang-format is already installed in GitHub's Ubuntu image
2023-09-18 09:06:35 -06:00
Chris Thrasher
1b257c8ea8 Fix nested namespace name 2023-09-18 09:06:18 -06:00
Chris Thrasher
6b503a726d Use sf::String::toUtf8() 2023-09-17 17:18:14 -06:00
Chris Thrasher
9dc2e541e8 Add clang-tidy modernize-return-braced-init-list check 2023-09-17 15:47:33 -06:00
Chris Thrasher
434effd6a1 Fix awkward error phrasing 2023-09-17 13:21:40 -06:00
Chris Thrasher
f9e6f673dd Fix references to sf::WindowBase::setMouseCursor
This function does exist in sf::Window via inheritence but it's
more accurate to refer to the base implementation in sf::WindowBase
2023-09-17 13:01:37 -06:00
Chris Thrasher
d56e1838a0 Shallow clone Catch2
This takes a 4 second configuration time for the entire project with
examples and tests and turns that into 3! Whopping 25% reduction in
configuration time. This effect is likely to be even larger on machines
without exceptionally good internet connections.

Before:
  $ hyperfine 'rm -rf build && cmake --preset dev'
  Benchmark 1: rm -rf build && cmake --preset dev
    Time (mean ± σ):      4.076 s ±  0.130 s    [User: 2.148 s, System: 1.376 s]
    Range (min … max):    3.963 s …  4.321 s    10 runs

After:
  $ hyperfine 'rm -rf build && cmake --preset dev'
  Benchmark 1: rm -rf build && cmake --preset dev
    Time (mean ± σ):      3.007 s ±  0.313 s    [User: 1.061 s, System: 1.160 s]
    Range (min … max):    2.783 s …  3.805 s    10 runs

Co-authored-by: binary1248 <binary1248@hotmail.com>
2023-09-15 16:07:52 -06:00
Chris Thrasher
f6f95b03a5 Assert in-bounds access when using operator[]
Out of bounds array access is undefined behavior so let's be sure
to catch potential UB in debug builds. It's too easy to accidentally
provide an invalid index to one of these public APIs.
2023-09-13 16:48:50 -06:00
Chris Thrasher
d6079ce526 Reenable sf::Cursor tests
A fun thing about runDisplayTests() is that it means that the tests
won't get run in CI on the DRM code. Technically you can run the
display tests locally when buidling with DRM so these tests will
still fail under those circumstances. Regardless I think this is a
net positive to run the tests in CI.
2023-09-13 16:19:18 -06:00
Vittorio Romeo
5cfbf912c7 Do not ignore '[[nodiscard]]` functions in example code 2023-09-13 16:06:23 -06:00
Chris Thrasher
a71d6bc078 Revert "Disable faulty Windows Clang job"
This reverts commit bbb6f60dda.
2023-09-09 00:17:08 -06:00
Chris Thrasher
0745ea97e0 Disable warnings as errors by default
This is not the best default value because it imposes additional
requirements on user builds that are not strictly necessary. This
has caused many complaints in the past as people encounter build
failures that are merely due to warnings and not hard compiler
errors.

Changing this default value emakes it more likely that someone trying
to use SFML can use it without issue.
2023-09-07 14:16:51 -06:00
Chris Thrasher
332d11be41 Add move semantics to sf::RenderTarget and sf::RenderTexture 2023-09-05 17:12:06 -06:00
Chris Thrasher
d304d1e57b Add tests for sf::Clipboard 2023-09-05 16:18:18 -06:00
Chris Thrasher
1811951b4a Allow for shared libs on iOS 2023-09-05 16:04:20 -06:00
Chris Thrasher
71162395d7 Add tests for sf::Keyboard 2023-09-05 15:19:53 -06:00
Chris Thrasher
70f9d49559 Add tests for sf::Texture::generateMipmap 2023-09-05 10:58:14 -06:00
Chris Thrasher
d7ab9208be Add tests for sf::RenderTexture
The generateMipmap test was failing because I forgot to enable MESA
in the MinGW Static Standard Library job.
2023-09-05 10:58:14 -06:00
Chris Thrasher
0a3b0d1d16 Add tests for sf::RenderTarget 2023-09-05 10:58:14 -06:00
binary1248
f6612dd1f0 Cache the results of WglContext::selectBestPixelFormat to speed up context creation on systems where pixel format selection is an expensive operation. Closes #2508 2023-09-05 09:35:42 -06:00
Chris Thrasher
78973e4a06 Use imported targets for Vorbis and Ogg
The name of the find module was changed to match the name used by
the reference implementation of Vorbis. Likely the target names were
taken from what the reference implementation names those targets.
2023-08-29 23:18:00 -06:00
Chris Thrasher
450acdeac2 Use OpenAL::OpenAL target
This is a lighitly modified copy of CMake 3.27.4's FindOpenAL.cmake
module. This gives us access to the OpenAL::OpenAL target which was
not added until CMake 3.25.
2023-08-29 23:18:00 -06:00
Chris Thrasher
fc4a282a64 Add Freetype::Freetype target 2023-08-29 23:18:00 -06:00
Chris Thrasher
2c7ed96654 Add FLAC::FLAC target 2023-08-29 23:18:00 -06:00
Chris Thrasher
1aa6750f50 Don't modify external targets 2023-08-29 23:18:00 -06:00
Chris Thrasher
26e54c7b2c Remove irrelevant entries from .gitignore
https://github.com/github/gitignore/blob/main/C%2B%2B.gitignore

Our .gitignore file originated from this .gitignore template. This
template is made to be general-purpose and thus includes many things
we don't care about. We know that the SFML build won't produce files
with any of these patterns outside of the binary dir.

I alphabetized the list while I was at it.
2023-08-29 23:14:58 -06:00
Johel Ernesto Guerrero Peña
c596d6cf3f fix: use non-deprecated form of UDL declaration
Clang 18 issues a deprecation warning,
and is converted to an error with `-Werror`.
2023-08-28 14:25:54 -06:00
Chris Thrasher
1cca7cde7e Consistently use getNativeHandle function name 2023-08-27 16:52:00 -06:00
kimci86
282dedd0d5 Fail to destruct used SoundBuffer also in release builds 2023-08-27 16:46:52 -06:00
kimci86
635c8c9290 Make Sound::getBuffer return a reference
because the pointer now cannot be null
2023-08-27 16:46:52 -06:00
kimci86
9cbcd56eb8 Remove Sound default constructor
so that a Sound instance is always bound to a SoundBuffer
2023-08-27 16:46:52 -06:00
Chris Thrasher
63088c1bf1 Add tests for sf::SocketSelector
I added move semantics while I was at it
2023-08-27 16:46:05 -06:00
Chris Thrasher
b3a467678d Add tests for sf::Http
This class hides a lot of its logic in the private section of the
classes and uses friends to access them so there is little accessible
in the public interface for testing.
2023-08-27 16:46:05 -06:00
Chris Thrasher
364fe38956 Add tests for sf::UdpSocket 2023-08-27 16:46:05 -06:00
Chris Thrasher
90d6d74282 Add tests for sf::TcpSocket 2023-08-27 16:46:05 -06:00
Chris Thrasher
ab06efbe95 Add tests for sf::TcpListener 2023-08-27 16:46:05 -06:00
Chris Thrasher
05b69119e4 Add tests for sf::Event 2023-08-27 10:04:14 -06:00
Chris Thrasher
71615c8268 Use struct for user defined type with no private section 2023-08-27 10:04:14 -06:00