Commit Graph

1592 Commits

Author SHA1 Message Date
Chris Thrasher
142ccf57bd Enable compiler warnings for Android 2022-08-12 18:01:36 +02:00
Chris Thrasher
a71d60a0c9 Simplify how warnings are ignored on Apple platforms
Within files that are only compiled on Apple platforms, we don't
need that redundant check for __APPLE__ so that got removed. Further,
Clang will recognize GCC pragmas so we don't need both Clang AND GCC
pragmas so I removed the Clang pragmas.

Currently GCC fails to compile this code but if one day in the future
that gets fixed, the deprecation warnings will continue to get ignored.
2022-08-03 23:41:01 +02:00
friendlyanon
e691033954 Require CMake 3.16 for ObjC and ObjC++ sources
Both languages gained native CMake support in 3.16:
https://cmake.org/cmake/help/latest/release/3.16.html#languages
2022-08-03 23:38:17 +02:00
kimci86
80ed37ce9d Fix SoundStream::play to restart the sound if it was played before 2022-08-03 23:36:12 +02:00
Chris Thrasher
97537d36b3 Remove unnecessary CMake version checks
Now that the project requires CMake version 3.15, all of these
checks are guaranteed to eveluate one way or the other so they can
be removed.
2022-07-18 12:43:49 +02:00
Chris Thrasher
55a1a2a4c4 Format .m files 2022-07-14 21:47:49 +02:00
Chris Thrasher
e2f0feaefc Disable OpenGL deprecation warnings
This was likely transitively included from another header from after
clang-format rearranged some headers, it was no longer present.
2022-07-11 20:04:56 +02:00
Chris Thrasher
87c4213ac6 Add missing headers
Reformatting with clang-format revealed that a few files were missing
some #include and #import statements.
2022-07-11 20:04:56 +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
kimci86
faaec51666 Fix compilation on Linux with SFML_OPENGL_ES option 2022-06-29 09:02:29 +02:00
Vittorio Romeo
8c8d97c6c9 IpAddress is always valid 2022-06-28 00:31:12 +02:00
kimci86
ee8f929bd6 Load EGL with glad to fix crash in sf::priv::eglCheckError on DRM 2022-06-27 20:39:30 +02:00
Chris Thrasher
0812054e02 Remove trailing whitespace 2022-06-25 21:32:55 +02:00
Vittorio Romeo
8a2aa6397f Explicitly instantiate float vector members in cpp 2022-06-24 18:47:28 +02:00
kimci86
5098b6c22b Fix eglCheck macro usage for assignments 2022-06-24 09:33:48 +02:00
Chris Thrasher
d7f09c1167 Manually inline sf::IpAddress::resolve
This code is better expressed as a constructor since that's the
only place where it's used.
2022-06-23 20:22:13 +02:00
Chris Thrasher
76223b07a1 Implement sf::IpAddress with std::optional 2022-06-23 20:22:13 +02:00
Vittorio Romeo
e4c5af63b7 Replace 'TcpSocket::send' local buffer with data member 2022-06-23 18:37:01 +02:00
kimci86
c4790bcb14 Clarify Image::copy implementation 2022-06-23 18:03:54 +02:00
kimci86
618c96339b Fix incorrect cast when parsing FTP connection port 2022-06-23 16:33:06 +02:00
Vittorio Romeo
6cd07a043f 'sf::Image::copy' returns a 'bool' to signal success/failure 2022-06-21 16:40:22 +02:00
Bambo-Borris
91c4a451ef Fix out of bounds read for sf::Image::copy() with bad sourceRect 2022-06-21 15:14:27 +02:00
Chris Thrasher
27a7774786 Use = default for trivial virtual destructors 2022-06-13 12:01:37 +02:00
Chris Thrasher
e61a8c5c1b Remove empty non-virtual destructors
While this practice didn't matter too much in C++03, it becomes a
pessimization with the introduction of C++11 move semantics. When
a destructor is defined, no matter how trivial it is, it implicitly
disables move semantics. Because the compiler can sometimes move
objects without the programmer asking, the inability to make these
moves can unnecessarily slow down SFML programs. Removing these
trivial destructors is an easy way to enable move semantics for
more SFML types and quietly speed up everyone's code.
2022-06-13 12:01:37 +02:00
Bård Sigurd Møller
709530d062 SFML/Graphics/Text.cpp: Compare utf32-characters to utf32 character literals consistently 2022-06-10 14:15:13 +02:00
Vittorio Romeo
fd1435d1c0 Prevent more conflicts between the 'None' Xlib macro and 'WindowStyle::None' 2022-06-08 13:44:16 +02:00
Chris Thrasher
745bcb82ef Remove implicitly defined special member functions 2022-06-07 23:19:30 +02:00
Lukas Dürrenberger
864f0feedd
Merge pull request #2112 from SFML/2.6.x
Merge 2.6.x to master
2022-06-03 17:59:50 +02:00
Vittorio Romeo
29f364eafa Include '<utility>' for 'std::exchange' 2022-06-03 17:57:42 +02:00
Lukas Dürrenberger
417f003224 Merge branch '2.6.x' 2022-06-03 17:08:06 +02:00
DanielRabl
97a1bf2f5d Use wide-string character consistently
Comparing '\r' against 8bit character instead of 16bit wide character.
2022-06-02 16:09:33 +02:00
Chris Thrasher
e1f36e66a5 Reduce casts to (void) 2022-06-01 08:19:40 +02:00
Chris Thrasher
b71ff372c7 Use () for functions with no parameters 2022-06-01 08:19:40 +02:00
Chris Thrasher
e0c4d14541 Use [[maybe_unused]] for parameters that are sometimes not used
Depending on preprocessor settings, certain parameters may or may
not be used. Instead of casing to (void) when not used, it's easier
to use C++17's [[maybe_unused]] attribute to express this.
2022-06-01 08:19:40 +02:00
Andrew King
3e424550d8 Added comment for GCC 12.1 false-positive (issue #2100) 2022-05-26 00:03:07 +02:00
Andrew King
6ff85eebe5 bugfix for #2100: null-dereference in GCC 12.1.0 2022-05-26 00:03:07 +02:00
Chris Thrasher
88515b2fca Add polar coordinates constructor for sf::Vector2<T> 2022-05-17 20:30:02 +02:00
Chris Thrasher
0785093ebc Use sf::Vector2<T> for numeric parameter pairs 2022-05-17 08:33:11 +02:00
Lukas Dürrenberger
65e357e901
Merge pull request #2099 from SFML/2.6.x
Backmerge 2.6.x to master
2022-05-10 23:39:34 +02:00
kimci86
9842c8fdf8 Fix incorrect cast when loading 16-bit samples from WAV file 2022-05-06 21:07:42 +02:00
Coder-Rahul-Y
9d401398e7 replacing NULL with nullptr in src/window file 2022-05-05 00:03:00 +02:00
CosminPerRam
6b4c287c20 Fixed unnecessary instantiation
Co-authored-by: kimci86 <kimci86@hotmail.fr>
2022-05-05 00:00:35 +02:00
CosminPerRam
27a82e733b try_emplace in Font::loadPage 2022-05-05 00:00:35 +02:00
Chris Thrasher
f320fc0db4 Remove local variables that shadowed global 2022-05-02 08:39:02 +02:00
Lukas Dürrenberger
9a6142bd22 Merge branch '2.6.x' 2022-04-27 08:12:25 +02:00
Radek Dutkiewicz
b6ca47e128 DRM Implementation
Ported sfml-pi DRM/KMS backend written by @mickelson 
Port co-authored by @substring

Co-authored-by: Andrew Mickelson <andrew.mickelson@gmail.com>
Co-authored-by: Gil Delescluse <frog2wah@gmail.com>
2022-04-26 07:44:14 +02:00
Lukas Dürrenberger
af209510d9 Merge branch '2.6.x' into master 2022-04-21 08:31:37 +02:00
kimci86
f7c88ee7ef Fix font pages not being created with the desired smoothness 2022-04-21 08:24:40 +02:00
Peter Chapman
470822cfe4 Fixed incorrect value for fully transparent pixels 2022-04-21 08:23:10 +02:00
Chris Thrasher
f8c1ec283a Print absolute paths when file not found
This is helpful when debugging why files won't load. By printing
the whole path we're making it more clear to the user exactly what
file is failing to load.
2022-04-21 08:22:19 +02:00
kimci86
28279c0686 Fix incorrect cast in Cursor::loadFromPixels Unix implementation 2022-04-13 08:49:20 +02:00
Chris Thrasher
92ece7dcc3 Remove iOS 7 workarounds 2022-04-12 08:13:18 +02:00
Lukas Dürrenberger
cb675b2bbc Merge branch '2.6.x' into feature/back-merge 2022-04-07 08:57:06 +02:00
binary1248
4afa91422f Added back the missing WINAPI calling convention declaration that was left out in 9a0cc4b7dc. Closes #2057. 2022-04-07 08:48:17 +02:00
kimci86
fae91bbbf2 Allow SoundStream::play to be called again after reaching the end 2022-04-06 12:01:42 +02:00
binary1248
8e95d1c73a Abort looping in SoundStream::streamData if an OpenAL error occurs that would have caused it to never terminate. Fixes #1831 2022-04-06 11:50:17 +02:00
Chris Thrasher
c5f3aeca72 Use std::quoted 2022-04-05 22:45:22 +02:00
Chris Thrasher
8f6903d008 Remove empty file 2022-03-25 17:03:46 +01:00
Vittorio Romeo
8838030d67 Fix -Wmissing-braces warning under clang 2022-03-18 08:34:41 +01:00
Chris Thrasher
d64cbff463 Remove redundant quotes when printing filesystem paths
operator<< for std::filesystem::path already adds quotes around the
path so we don't need to keep manually quoting them.
2022-03-15 15:21:45 +01:00
marwen.azouzi
79250d9584 Fixes the following compilation error
error: implicit conversion from 'size_t' (aka 'unsigned long') to 'CGFloat' (aka 'double') may lose precision [-Werror,-Wimplicit-int-float-conversion]
2022-03-15 12:52:50 +01:00
binary1248
3315456dc3 Replaced select with poll in JoystickImpl to function even when a large number of file descriptors are open. 2022-03-12 13:09:11 +01:00
Chris Thrasher
2e6c363e64 Mark external headers as SYSTEM headers
Among other benefits this ensures that the compiler doesn't emit
warnings on headers in these paths.
2022-03-10 21:26:39 +01:00
Chris Thrasher
7dfc7f0202 Use new sf::Vector2<T> utilities 2022-03-03 19:20:09 +00:00
Chris Thrasher
106da21dd1 Revert accidental filesystem conversion
"extension" in this context is not referring to a file extension.
2022-02-18 19:48:54 +00:00
Chris Thrasher
2f2284955e Use list(APPEND to simplify modifying variables 2022-02-17 14:39:07 +01:00
Vittorio Romeo
d55b5ec5b9 Minor include cleanup ('Window', 'RenderWindow') 2022-02-17 01:42:31 +00:00
Chris Thrasher
5f2c7bb898 Use std::filesystem::path 2022-02-17 00:40:29 +00:00
Chris Thrasher
e93adc65ee Add missing override keyword 2022-02-17 00:40:29 +00:00
Vittorio Romeo
a3b27b4a6d Use pre-increment when post-increment is not necessary 2022-02-17 00:39:35 +00:00
Vittorio Romeo
218154cf00 Add move semantics to 'Font', 'Text,' and 'Image' 2022-02-16 16:29:45 +00:00
Vittorio Romeo
b069f88127 Avoid overuse of 'std::endl' 2022-02-16 16:28:39 +00:00
Vittorio Romeo
5fee1aad7d Add '[[nodiscard]]' in more useful/ambiguous places, fix usages 2022-02-16 16:27:32 +00:00
Vittorio Romeo
83259a4a31 Add move semantics to 'sf::Packet' 2022-02-16 13:50:07 +00:00
Vittorio Romeo
32ad019304 Cleanup sf::err includes 2022-02-16 08:45:39 +01:00
binary1248
359fe9088c Fixed warnings reported by LGTM and Coverity Scan. 2022-02-16 08:26:17 +01:00
Vittorio Romeo
5b500ad2c2 Turn more compile-time constants into 'constexpr' variables 2022-02-15 13:27:10 +00:00
Vittorio Romeo
dbeef66693 Turn 'sf::Transform' into a 'constexpr' class 2022-02-10 23:51:47 +00:00
Vittorio Romeo
63ce7e4e92 Remove unnecessary includes from public-facing headers 2022-02-10 21:05:49 +00:00
Vittorio Romeo
0e419543f2 Make 'Color' constants 'constexpr' and add tests 2022-02-08 23:32:12 +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
Vittorio Romeo
a880122836 Reintroduce 'SleepImpl' sleep implementation 2022-01-12 00:01:35 +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
Lukas Dürrenberger
3a402f241a Merge branch '2.6.x' into feature/back_merge 2022-01-08 12:28:34 +01:00
Chris Thrasher
79c2aadbcc Remove redundant 4-param sf::Rect<T> constructor 2022-01-06 20:04:03 +01:00
Jan Haller
2ea46c8702 Fix WindowImplX11 initialization 2022-01-04 19:21:32 +01:00
Vittorio Romeo
3dc8fc0923 Add 'NetworkUtil' for network module tests 2022-01-03 01:00:55 +01:00
Jan Haller
3b06972602 Update year to 2022 2022-01-02 23:06:31 +01:00
Vittorio Romeo
5ba6580568 Make 'Time' a 'constexpr' class 2021-12-28 16:52:52 +01:00
Chris Thrasher
14fff20eb8 Remove redundant API taking x,y pair instead of sf::Vector 2021-12-26 17:13:18 +01:00
kimci86
53594dfbe7 Fix null pointer dereference in Font 2021-12-23 17:03:16 +01:00
kimci86
d0c63f46fc Use a smart pointer to manage std::FILE pointer in FileInputStream 2021-12-22 02:35:45 +01:00
Vittorio Romeo
f6de7eca40 Use smart pointers to manage memory 2021-12-21 19:54:25 +01:00
Lukas Dürrenberger
e982d08f37
Merge pull request #1920 from SFML/feature/backmerge
Back-merge changes from 2.6.x to master
2021-12-20 14:22:56 +01:00
Lukas Dürrenberger
3cd45a283b Merge branch '2.6.x' into feature/backmerge 2021-12-20 13:44:56 +01:00
Chris Thrasher
14bbb0d1cc Unify toLower implementations 2021-12-20 08:29:05 +01:00
Pawel Paruzel
c824d3d57a Fix all macOS clang warnings
Co-authored-by: binary1248 <binary1248@hotmail.com>
2021-12-20 00:10:55 +01:00
Pawel Paruzel
4df16d19e5 Fix Clang warnings on Android 2021-12-20 00:10:55 +01:00
Vittorio Romeo
4a189d6602 Remove build logic for unsupported compilers 2021-12-19 21:51:53 +01:00
Vittorio Romeo
18bb892625 Improve compilation times by removing some includes and avoiding heavy dependencies 2021-12-19 18:13:07 +01:00
Vittorio Romeo
569a7549d4 Fix -Wmissing-braces warning under clang 2021-12-19 15:58:29 +01:00
Vittorio Romeo
a20d73aafa Make 'Vertex' a 'constexpr' class 2021-12-19 15:35:47 +01:00
Vittorio Romeo
ed201ce87a Make 'Color' a 'constexpr' class 2021-12-18 21:34:05 +01:00
Vittorio Romeo
cfeb7651b5 Make 'Rect' a 'constexpr' class 2021-12-18 17:29:41 +01:00
Vittorio Romeo
f6bd12c300 Replace 'sf::NonCopyable' with '= delete' 2021-12-16 22:39:38 +01:00
Vittorio Romeo
3c7fba0f96 Reduce compile-time impact of 'windows.h' 2021-12-16 22:39:07 +01:00
Pawel Paruzel
dfff93fe04 Update SFML Time classes to C++17
Ensure Clock uses a monotonic clock

Statically assert against low precision clocks

Allow suspend-aware clock for Android

Add descriptive documentation to sf::Clock
2021-12-15 12:52:27 +01:00
Vittorio Romeo
e9e353a7b2 Remove redundant APIs taking '(x, y)' in favour of ones taking 'sf::Vector' 2021-12-15 11:22:46 +01:00
Vittorio Romeo
bb854fa739 Strategic use of '[[nodiscard]]' in 'Audio' module 2021-12-14 15:19:37 +01:00
Vittorio Romeo
ab0378805d Strategic use of '[[nodiscard]]' in 'System' module 2021-12-14 14:02:05 +01:00
Vittorio Romeo
b33f4bb205 Replace SFML multithreading primitives with standard C++ ones 2021-12-14 01:07:29 +01:00
Anton Vasiliev
db38696c48 Fix calling convention for SetProcessDpiAwareness
A few changes ago a WINAPI was lost on SetProcessDpiAwareness function
declaration. This is incorrect because it changes calling convention
from stdcall to cdecl.
2021-12-12 23:28:56 +01:00
Vittorio Romeo
363e964acc Strategic use of '[[nodiscard]]' in 'Graphics' module 2021-12-10 01:27:05 +00:00
Vittorio Romeo
d02d3590fd Use 'std::optional' instead of 'std::vector' for temporary 'AudioDevice' 2021-12-09 22:35:14 +00:00
Vittorio Romeo
7343b112fc Strategic use of '[[nodiscard]]' in 'Network' module 2021-12-09 22:34:57 +00:00
Vittorio Romeo
3579ecbdb0 Strategic use of '[[nodiscard]]' in 'Window' module 2021-12-09 19:53:54 +00:00
Vittorio Romeo
bc5b41657c Remove deprecated 'PrimitiveType::Quads' 2021-12-09 16:33:02 +00:00
Lukas Dürrenberger
cd517ba267 Merge branch '2.6.x' into feature/backmerge 2021-12-09 14:36:55 +01:00
Vittorio Romeo
6678fdd291 Remove deprecated 'Shader::setParameter' API 2021-12-09 13:12:03 +00:00
Vittorio Romeo
0e28212584 Remove deprecated overload of 'RenderWindow::capture' 2021-12-09 13:12:03 +00:00
Vittorio Romeo
e7a5039cd9 Remove deprecated overload of 'RenderTexture::create' 2021-12-09 13:12:03 +00:00
Vittorio Romeo
f6186d880d Remove deprecated 'Text::[set|get]Color' 2021-12-09 13:12:03 +00:00
Vittorio Romeo
21d594a765 Remove 'MouseWheelEvent' and adjust usages 2021-12-09 13:12:03 +00:00
Vittorio Romeo
d12a2cd319 Use 'override' whenever possible instead of 'virtual' 2021-12-09 09:07:03 +01:00
2567551469 X11: fix XIM input method support 2021-12-09 09:04:59 +01:00
Vittorio Romeo
a23076d7bb Replace 'BoolType' with 'explicit operator bool' 2021-12-09 09:03:55 +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
Vittorio Romeo
f87f5a3f72 Use 'shrink_to_fit' instead of 'swap' 2021-12-08 16:07:15 +00:00
Vittorio Romeo
3914bd0062 Remove redundant synchronization for 'static' variable initialization 2021-12-08 16:07:15 +00:00
Vittorio Romeo
8be8a76cba Use 'auto', range-'for', and structured bindings to improve some loops 2021-12-08 13:05:52 +01:00
lieff
e458f4651e Add MP3 decoding support using 'minimp3'
Co-authored-by: Lukas Dürrenberger <eXpl0it3r@my-gate.net>
Co-authored-by: Vittorio Romeo <vittorio.romeo@outlook.com>
2021-12-08 08:19:08 +01:00
Vittorio Romeo
51ebeaf383 Change most associative containers to their respective 'unordered' version 2021-12-06 14:01:56 +00:00
Lukas Dürrenberger
e53d9e88a9 Fix regression in copyToImage
When the source image is flipped, we want to read the source data
backwards and thus need to keep subtracting the "iterator" on the source
data.
2021-12-06 08:08:50 +01:00
Pawel Paruzel
11020363b1 Fix wrong cast in sf::Packet
Add unit tests
2021-12-06 08:06:20 +01:00
Vittorio Romeo
93410afdc7 Delegate 'WglContext(WglContext*)' constructor to more general one 2021-12-05 18:09:36 +00:00
Vittorio Romeo
0f9e13a2bb Use list-initialization to zero-initialize 'JoystickImpl.hpp' structures 2021-12-04 23:12:57 +00:00
Vittorio Romeo
4358a303a7 Use emplacement operations to avoid unnecessary copies/moves 2021-12-03 19:34:16 +01:00
Vittorio Romeo
c9f7cb3d52 Use 'nullptr' instead of 'NULL' 2021-12-03 15:48:32 +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
c74694c3b2 Fix conversion warnings for the Audio module 2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
01836ccea4 Fix conversion warnings for the Graphics module
- Fix conversion and shadowing warnings
- Add SYSTEM indicator for stb_*, FreeType and other headers
2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
0468612ac0 Fix conversion warnings for the Network module 2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
e0f2356102 Fix conversion warnings for Unix
- Fix conversion & shadowing warnings
- For the System & Window module
2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
92bc513d9f Fix variable name shadowing warning 2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
e01aa152c1 Fix type conversion warnings 2021-11-30 11:25:58 +01:00
Lukas Dürrenberger
9052ccf218 Fix integer conversion warnings 2021-11-30 11:25:58 +01:00