Commit Graph

257 Commits

Author SHA1 Message Date
vittorioromeo
b552148e26 Header cleanup guided by IWYU 2024-02-09 12:52:23 +01:00
vittorioromeo
72d30e7beb Update Catch2 to v3.5.2 2024-02-05 19:58:44 +01:00
vittorioromeo
ee13dfbd3b 'SoundFileFactory' implementation overhaul 2024-02-05 17:11:23 +01:00
vittorioromeo
4ff70c87d3 Self-contained '.inl' headers + minor refactoring 2024-02-05 13:45:01 +01:00
Kipernal
eb07e1e6c5 Added support for stencil testing.
Co-authored-by: binary1248 <binary1248@hotmail.com>
Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
2024-01-29 08:13:14 -07:00
Chris Thrasher
9022d9564d Define character traits for std::uint8_t
Character traits are only standardized for character types of which
std::uint8_t is not. All major C++ implementations happen to define
this specialization but because it is not standard C++ they are
allowed to remove it as LLVM has done by deprecating this specialization
in LLVM 18. It is slated for removal in LLVM 19. To avoid compilation
errors and to get ahead of any deprecation warnings when LLVM 18 ships
we need to define our own std::uint8_t character traits.

SFML 4 will have access to C++20's std::u8string which should let us
remove this code.
2024-01-28 10:24:02 -07:00
kimci86
0d3c7f1c32 Make VertexBuffer::Usage a scoped enumeration 2024-01-27 15:31:30 -07:00
kimci86
b496877c90 Make BlendMode::Factor and BlendMode::Equation scoped enumerations 2024-01-27 15:31:30 -07:00
Corentin Schreiber
ebf485737f Add texture coordinate type to sf::RenderStates 2024-01-25 23:45:00 -07:00
Chris Thrasher
a2c003b2b7 Add sf::State for specifying fullscreen or floating windows 2024-01-15 23:08:33 -07:00
Chris Thrasher
43dc13c3de Fix typo in sf::Vector3<T> type trait tests 2024-01-14 19:19:37 -07:00
Chris Thrasher
4346b9a8bc Remove unnecessary default destructor
sf::RenderWindow still inherits a virtual destructor from a base
class so there's no need to explicitly declare a virtual destructor.
I added a test to ensure this property was not broken.
2024-01-08 12:26:28 -07:00
Chris Thrasher
115344ecc3 Improve sf::Packet test coverage 2023-12-31 14:17:55 -07:00
Chris Thrasher
f9a343290d Add tests for sf::Ftp 2023-12-31 10:05:54 -07:00
kimci86
39da2b829c Make Keyboard::Key a scoped enumeration 2023-12-22 10:47:30 -06:00
kimci86
ebf190b660 Make Joystick::Axis a scoped enumeration 2023-12-15 15:18:25 -07:00
kimci86
df2f56fe83 Make Cursor::Type a scoped enumeration 2023-12-15 15:18:25 -07:00
Chris Thrasher
ea42079da9 Update Catch2
https://github.com/catchorg/Catch2/releases/tag/v3.5.0
2023-12-10 19:40:28 -07:00
Chris Thrasher
7f5d87dcd5 Add move semantics to sf::Context 2023-12-09 10:27:57 -07:00
Chris Thrasher
cc5dc0f08c Fix sf::Context::setActive bug 2023-12-08 13:42:00 -07:00
Chris Thrasher
4e2f6ae655 Add more tests for sf::Context 2023-12-01 07:09:03 -07:00
Chris Thrasher
9b751899eb Add tests for sf::InputSoundFile 2023-11-27 10:49:51 -05:00
Chris Thrasher
f3341359eb Add tests for sf::SoundFileFactory 2023-11-26 19:53:07 -05:00
binary1248
5a2f30c5ae Added support for scissor testing. 2023-11-20 11:01:33 -07:00
Chris Thrasher
08eca7c9a4 Default all sf::Font special member functions 2023-11-18 20:52:17 -07:00
Chris Thrasher
daa1efcf05
Add tests for various loadFromStream() functions 2023-11-16 10:03:29 -07:00
Chris Thrasher
9cb4a68c9a Test class templates with multiple template types 2023-11-15 12:07:31 -07:00
Chris Thrasher
d3a79e6282 Add sf::Rect<T>::getCenter() 2023-11-15 09:30:01 -07:00
Chris Thrasher
0d4c34cf9b Add tests for sf::Image::loadFromMemory 2023-11-15 10:55:07 +01:00
binary1248
116c101a77 Fixed window tests not accepting a context with better than requested settings. 2023-11-12 10:35:48 -07:00
Chris Thrasher
d672b3504e Add more tests for sf::Shape 2023-11-05 15:46:49 -07:00
binary1248
8c9c5c5b99 Added missing SFML_USE_STATIC_STD_LIBS checks to CMake configuration. 2023-10-31 23:22:28 +01: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
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
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
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
c0061797e3 Add more tests for sf::Window 2023-10-05 17:41:29 -06:00
Chris Thrasher
b856d806be Improve sf::FileInputStream test coverage 2023-10-05 16:46:31 -06:00
Chris Thrasher
1e4aed8700 Fix clang-tidy readability-container-size-empty warnings 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
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
ff5eaca6a2 Add more tests for sf::VideoMode 2023-09-19 13:43:28 -06:00
Chris Thrasher
9dc2e541e8 Add clang-tidy modernize-return-braced-init-list check 2023-09-17 15:47:33 -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