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