Commit Graph

36 Commits

Author SHA1 Message Date
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
133bcda6cb Add more readability-identifier-naming rules 2023-11-05 15:05:25 -07: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
d131beb0fd Fix misspellings
I used the Python tool codespell to find these
2023-05-21 14:37:46 -06:00
Chris Thrasher
fb1cfdc48d Add misc-const-correctness clang-tidy check 2023-05-04 16:22:03 -06:00
vittorioromeo
cbfa9cbb65 Reorder includes hierarchically 2023-04-25 17:25:33 +02:00
Thibaut PONCHON
642d981acf Replace std::strcmp by std::string_view::operator==
clang-format validation pass

Remove unecessary cstring include
2023-01-29 12:10:34 -07:00
Shiv
ca5ca65004
Removed return EXIT_SUCCESS and cstdlib 2023-01-23 10:00:48 +01:00
Chris Thrasher
8a5b206bb8 Add clang-tidy modernize-use-default-member-init check 2023-01-18 08:03:10 -07:00
Norm Evangelista
3745ea2336 Added readability-container-size-empty, readability-isolate-declaration
FIxed Windows escapes for readability-* checks


Fixed Linux DRM readability-isolate-declaration escape


Fixed typo in fix :-|


Fixed clang-format issue
2023-01-16 21:45:33 +01:00
Norm Evangelista
39dd630f07 Added modernize-use-nullptr check
Addressed review comments


Fixed Vulkan.cpp clang-tidy issues


Used default-constructed objects instead of 0


More fun with OSX clang-tidy


Try casting a nullptr to see if clang-tidy can live with it


Revert "Try casting a nullptr to see if clang-tidy can live with it"

This reverts commit e217a1d8be45e3fd27dc73e1c7043be921d3830b.

Restored deleted line
2023-01-11 17:36:16 -07:00
Shiv
9bdf207818
Use std::clamp 2022-12-27 17:58:49 -06:00
Chris Thrasher
3a3935d005 Replace sf::Uint64 with std::uint64_t 2022-09-13 11:15:03 -06:00
Chris Thrasher
e294090c8e Replace sf::Uint32 with std::uint32_t 2022-09-12 15:36:55 -06:00
Chris Thrasher
056f66a2b8 Replace sf::Int32 with std::int32_t 2022-09-12 15:36:55 -06:00
Chris Thrasher
82b48a7520 Use std::size_t 2022-09-07 22:23:22 +02:00
Chris Thrasher
4f52793f7d Run clang-format 2022-07-11 20:04:56 +02:00
metaquarx
88e9f82bee Add '.clang-format' file, CI integration, and formatting exceptions
Co-authored-by: Vittorio Romeo <vittorio.romeo@outlook.com>
Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
Co-authored-by: kimci86 <kimci86@hotmail.fr>
2022-07-11 20:04:56 +02:00
Chris Thrasher
65fef85b30 Simplify how examples are built
CMake doesn't require absolute paths so we can safely remove
SRCROOT and let implicit relative pathing achieve the same result
with less work on our part.
2022-06-16 23:56:39 +02:00
Chris Thrasher
539483d329 Use std::array 2022-06-16 23:56:39 +02:00
Chris Thrasher
dbac180db5 Limit the scope of event object 2022-06-08 13:16:40 +02:00
Chris Thrasher
0785093ebc Use sf::Vector2<T> for numeric parameter pairs 2022-05-17 08:33:11 +02:00
Chris Thrasher
a302a9829e Ensure files end with newline character 2022-04-12 08:13:48 +02:00
Vittorio Romeo
a3b27b4a6d Use pre-increment when post-increment is not necessary 2022-02-17 00:39:35 +00:00
Chris Thrasher
28f273b9c9 Add sf::Angle
Similar to sf::Time, sf::Angle provides a typesafe API for working
with angles and provides named functions for converting to and from
degrees and radians.
2022-02-08 22:52:37 +00:00
Chris Thrasher
4586db91a9 Add SFML:: namespace to targets
This removes the sfml- prefixed targets from the export set. The sfml-
prefixed targets are still available within the build tree but not to
downstream users thus making this an API breaking change when compared
to the 2.x releases. To keep things consistent, usage of the sfml-
targets were replaced with their namespaced counterparts.

This has a number of benefits:

  1. It's more idiomatic. Modern CMake libraries are expected to
     have namespaced targets.

  2. Namespaced targets are less likely to collide with user-defined
     targets. No one will accidentally define a SFML:: target.

  3. If a namespaced target is not found by CMake, configuration
     will immediately stop.
2022-01-11 22:27:39 +01:00
Vittorio Romeo
257c78f07a Don't use 'sf::err' in public example code 2021-12-20 15:06:27 +01:00
Vittorio Romeo
87e84bc9e5 Minor modernization changes: 'nullptr', range-based 'for' loops, ... 2021-12-08 21:41:20 +00:00
Vittorio Romeo
2839f6b4d2 Use 'auto' where no information is lost 2021-12-08 19:14:31 +00:00
Vittorio Romeo
9a0cc4b7dc Use alias declarations instead of 'typedef' 2021-12-08 17:58:13 +00:00
Anton Vasiliev
f03a415121 Use std::vector.data() where appropriate 2021-12-08 16:26:03 +00:00
Anton Vasiliev
ce5d410c74 Fix exception on Vulkan example shutdown
This change fixes exception on Vulkan example shutdown when drawing
to window after it was closed.
2021-12-08 01:06:37 +00:00
Anton Vasiliev
b9da3b879c Fix possible exception on Vulkan example startup
This change fixes possible exception on Vulkan example startup when
validationLayers.size()) is zero.
2021-12-08 01:06:37 +00:00
Vittorio Romeo
6cf124db66 Fix remaining warnings
- Fixes in examples
- Fixes across all the modules
2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
bc628c6b28 Fix warnings in examples
- Convert where necessary
- Adjust type where reasonable
- Use SYSTEM headers for gl.h, stb* and vulkan
2021-11-30 11:25:58 +01:00
binary1248
6272f853c1 Add support for creating Vulkan window surfaces. 2019-10-16 21:48:24 +02:00