Commit Graph
100 Commits
Author SHA1 Message Date
Chris Thrasher 112abc1ab7 Add tests for sfView 2024-12-24 11:29:54 -06:00
Chris Thrasher b0b4d253d2 Add tests for sfVertexArray 2024-12-24 11:29:54 -06:00
Chris Thrasher 82d0ff2012 Add missing Freetype dependency 2024-12-23 22:33:59 -06:00
Chris Thrasher 589b86d4c0 Fix const correctness issues 2024-12-23 16:17:45 -06:00
Chris Thrasher feb431a689 Add tests for sfRenderStates 2024-12-23 10:31:53 -06:00
Chris Thrasher f6949a5a06 Add tests for sfTransform 2024-12-23 10:31:53 -06:00
Chris Thrasher ed185c838d Add tests for sfStencilMode 2024-12-23 10:31:53 -06:00
Chris Thrasher ab1a1a2299 Add tests for sfCoordinateType 2024-12-22 17:28:57 -06:00
Chris Thrasher bb8a261bb8 Add tests for sfColor 2024-12-22 17:28:57 -06:00
Chris Thrasher b3e6e23ffd Add tests for sfBlendMode 2024-12-22 17:28:57 -06:00
Chris Thrasher e46663cf38 Add tests for sfRect 2024-12-22 17:28:57 -06:00
Chris Thrasher e7a41e864f Add tests for Audio module 2024-12-22 17:05:49 -06:00
Chris Thrasher ae540e2396 Fix README typo 2024-12-22 14:58:58 -06:00
Chris Thrasher 14e06ccea4 Centrally define SFML version 2024-12-21 20:38:26 -06:00
Chris Thrasher a185b440ef Use SFML 3.0.0 tag 2024-12-21 19:08:15 -06:00
Chris Thrasher 14378de263 Upgrade to clang-format-17 2024-11-01 15:03:09 -06:00
Chris Thrasher d1708cbd65 Remove unused headers 2024-10-06 23:20:54 +02:00
Chris Thrasher a14d4322ac Remove references to sf:: types in public documentation 2024-10-06 23:20:19 +02:00
Chris Thrasher 5385f329c6 Clean up IpAddress implementation 2024-10-06 14:22:41 -06:00
Chris Thrasher 6ce8f95553 Remove unnecessary static_casts 2024-09-28 21:20:14 -06:00
Chris Thrasher b8860362a3 Remove reference to C++ standard library 2024-09-27 14:19:37 -06:00
Chris Thrasher 37e78942ed Use functions from the C++ standard library 2024-09-27 14:19:37 -06:00
Chris Thrasher c74378bade Update enumerations to match SFML 3 2024-09-27 13:24:31 -06:00
Chris Thrasher fef1e09542 Prefix library options with CSFML_ 2024-09-24 15:08:30 -06:00
Chris Thrasher 1b082ac255 Simplify shader creation functions 2024-09-24 15:08:17 -06:00
Chris Thrasher 7b583b1aac Use inheritance to remove This data member
It's reasonable to say that, for example, sfImage _is_ an sf::Image.
This "is-a" relationship is what inheritance does a very good job
modeling. By using inheritance to implement CSFML types in terms of
their SFML counterpart, we get code that is simpler and easier to
read. We also avoid some of the extra "dancing" required to construct
a CSFML type from an SFML type. This improves the encapsulation of
our CSFML implementation.
2024-09-24 11:05:19 -06:00
Chris Thrasher 4ef89bb387 Implement new sf::Clock functions 2024-09-20 17:08:32 -05:00
Chris Thrasher fbe6e6193f Implement getGeometricCenter 2024-09-20 16:29:34 -05:00
Chris Thrasher 77b3035308 Manually inline sfShapeImpl 2024-09-20 15:55:10 -05:00
Chris Thrasher 17f7982215 Remove unnecessary constructors 2024-09-18 11:59:18 -04:00
Chris Thrasher 5b910f8761 Remove all delete calls outside of _destroy functions 2024-09-18 11:30:12 -04:00
Chris Thrasher 3826091357 Assert against arguments which would invoke UB 2024-09-17 18:34:06 -04:00
Chris Thrasher d26c691458 Assert string arguments are not null
For these functions, providing a null pointer argument would result
in invoking undefined behavior.
2024-09-16 21:52:54 -04:00
Chris Thrasher 21d4571d5b Assert that filepath strings are not null 2024-09-16 13:39:12 -04:00
Chris Thrasher 9765e30e2f Assert that shader uniform names are not null 2024-09-12 17:17:31 -06:00
Chris Thrasher 2638160548 Use standard CMake variables for Doxygen paths 2024-09-12 12:35:12 -06:00
Chris Thrasher b229329d31 Simplify how Doxygen CMake variables are set 2024-09-12 12:35:12 -06:00
Chris Thrasher 7182877105 Improve phrasing in docs 2024-09-12 12:35:12 -06:00
Chris Thrasher 360268ea39 Improve const correctness 2024-09-12 10:08:46 -06:00
Chris Thrasher 7f5807a6b5 Fix Doxygen warnings 2024-09-11 22:19:10 -06:00
Chris Thrasher 63beea6043 Add Doxygen CI job 2024-09-11 21:54:22 -06:00
Chris Thrasher 290e43ff66 Match return types with underlying SFML interface 2024-09-11 17:19:31 -06:00
Chris Thrasher 8cf074444f Stop using deprecated DOXYGEN_EXECUTABLE variable
This was deprecated in CMake 3.9.

See https://cmake.org/cmake/help/v3.22/module/FindDoxygen.html#variable:DOXYGEN_EXECUTABLE
2024-09-11 17:06:44 -06:00
Chris Thrasher a430c713e3 Remove redundant definition
This is already inherited as a usage requirement when linking to
SFML's CMake targets.
2024-09-11 16:17:14 -06:00
Chris Thrasher 574c6afe05 Use ON and OFF for CMake booleans 2024-09-11 14:36:23 -06:00
Chris Thrasher 53bd3517db Update to new anti-aliasing naming 2024-09-09 23:42:05 -06:00
Chris Thrasher b05b1f1997 Add tests for sfContextAttribute 2024-09-08 12:08:43 -06:00
Chris Thrasher 8cc7537899 Add missing window state parameters 2024-09-08 10:45:11 -06:00
Chris Thrasher d971aada83 Add more tests for the Window module 2024-09-08 09:56:31 -06:00
Chris Thrasher 02d6d4937a Use modern CMake property to handle static runtime linking with MSVC
See https://github.com/SFML/SFML/pull/1834
2024-09-08 08:49:13 -06:00
Chris Thrasher b662349832 Enforce variable and parameter casing style 2024-09-07 21:26:36 -06:00
Chris Thrasher 055e69520f Support building CSFML as static libraries
Some languages can make use of C foreign function interfaces
compiled as static libraries so it's a good idea for CSFML to
support this use case.
2024-09-07 15:17:05 -06:00
Chris Thrasher e963079712 Remove unnecessary .gitignore entries 2024-09-07 09:45:13 -06:00
Chris Thrasher 5d158dbed6 Revert "Remove unnecessary extern from C function declarations"
This reverts commit dfaebc6b88.
2024-09-05 15:03:56 -06:00
Chris Thrasher e336d9fb77 Add missing sf prefix
This function pointer is within the `sf::` namespace of SFML so it
ought to have an `sf` prefix in CSFML.
2024-09-05 14:21:42 -06:00
Chris Thrasher 2d88625f4e Update copyright year 2024-09-05 14:06:13 -06:00
Chris Thrasher 34f95771d8 Move copyToChar32 to the one file where it's used 2024-09-05 13:41:26 -06:00
Chris Thrasher d50ff75b44 Use project-local CMake variables 2024-09-05 13:13:48 -06:00
Chris Thrasher 87289d57ea Use parentheses for constructor calls 2024-09-05 12:47:44 -06:00
Chris Thrasher b5e3cb6122 Clarify instructions for building CSFML 2024-09-04 16:17:56 -06:00
Chris Thrasher 53c364deec Copy SFML DLLs alongside test executables 2024-09-03 18:09:35 -06:00
Chris Thrasher 431c9641ea Add myself to authors list 2024-09-03 16:58:18 -06:00
Chris Thrasher a9108a2e77 Document the current state of development 2024-09-03 16:44:32 -06:00
Chris Thrasher 1a95bf0807 Use more [[nodiscard]] 2024-09-03 14:45:19 -06:00
Chris Thrasher 4d23a89918 Add clang-tidy cppcoreguidelines-* checks 2024-09-03 12:15:01 -06:00
Chris Thrasher cc1b6f0c45 Ensure CMake options include CSFML_ prefix 2024-09-03 10:44:50 -06:00
Chris Thrasher 34febc214f Add missing sfSoundBufferRecorder functions inherited from sf::SoundRecorder 2024-09-03 09:38:22 -06:00
Chris Thrasher 725b00e6ae Simplify FTP types 2024-09-02 21:18:31 -06:00
Chris Thrasher 6035a5fa5a Use SFML_ROOT to find SFML installation
This is line with modern CMake convention where -D<PackageName>_ROOT
is used to locate a given package's installation.

https://cmake.org/cmake/help/latest/variable/PackageName_ROOT.html#variable:%3CPackageName%3E_ROOT
2024-09-02 21:03:54 -06:00
Chris Thrasher f9e67732e2 Put common configuration settings in a CMakePresets file 2024-09-02 20:48:16 -06:00
Chris Thrasher 9750455b76 Remove leading newlines 2024-09-02 20:47:35 -06:00
Chris Thrasher 479554024d Add tests for sfHttp 2024-09-02 20:04:06 -06:00
Chris Thrasher b5dc20260c Add tests for sfFtp 2024-09-02 20:04:06 -06:00
Chris Thrasher 10aaee1290 Add tests for sfSocketStatus 2024-09-02 20:04:06 -06:00
Chris Thrasher 84978f8acc Add tests for sfIpAddress 2024-09-02 20:04:06 -06:00
Chris Thrasher 497b261acd Add clang-tidy modernize- checks 2024-09-02 20:02:29 -06:00
Chris Thrasher afc07ec565 Simplify event conversion 2024-09-02 15:39:15 -06:00
Chris Thrasher 3c0931b744 Build with newer macOS image 2024-09-02 14:54:22 -06:00
Chris Thrasher fde5bd02d7 Fix typo in documentation 2024-09-02 11:53:58 -06:00
Chris Thrasher 00f78c1964 Use assert to protect against dereferencing null pointers 2024-09-02 11:49:10 -06:00
Chris Thrasher 6e654c8193 Fix documentation bug 2024-09-01 13:59:37 -06:00
Chris Thrasher dfaebc6b88 Remove unnecessary extern from C function declarations 2024-09-01 13:52:28 -06:00
Chris Thrasher b3a0ed815b Clean up implementation of sf<T>Rect_intersects 2024-09-01 12:56:29 -06:00
Chris Thrasher 54d28325b9 Run clang-format 2024-09-01 11:32:18 -06:00
Chris Thrasher 42aec92642 Add format target for running clang-format 2024-09-01 11:32:18 -06:00
Chris Thrasher 86d52f4712 Use vectors for pairs of scalar parameters 2024-08-31 12:03:21 -06:00
Chris Thrasher 10685c7d0d Stop leaving variables unused in release builds
In a Release build, macros like `CSFML_CHECK_RETURN` expand into
nothing more than a cast-to-void which is meant to silence compiler
warnings about unused variables.

By declaring a temporary inside the macro argument, we ensure that
debug builds behave the same as always but Release builds expand
these macros into truly no code thus ensuring these temporary
variables are never created in the first place so there is now
nothing that we have to cast to void.
2024-08-27 10:21:46 -06:00
Chris Thrasher 513a6c2fda Add missing apt package dependency 2024-08-27 07:00:13 +01:00
Chris Thrasher caabd98100 Add convenience functions for converting between SFML and CSFML types 2024-08-26 16:04:44 -06:00
Chris Thrasher 3316223629 Add tidy target for running clang-tidy 2024-08-25 14:18:36 -06:00
Chris Thrasher fe8d8a972c Fix typos in public documentation
Typos found with codespell tool
2024-08-25 12:09:04 -06:00
Chris Thrasher 55fe064af4 Remove unnecessary (void) parameters from C++ implementations 2024-08-25 12:07:01 -06:00
Chris Thrasher e2e5ef1d31 Use .hpp as file extension for C++ headers 2024-08-25 10:11:32 -06:00
Chris Thrasher c5158c77b4 Move CSFML source files to CSFML/ directory
This helps make it easier to distinguish SFML files from CSFML files.
This is especially important for CSFML private headers which are
often C++ code with .hpp file extensions. This change means SFML and
CSFML can use headers with the same name without conflict.
2024-08-24 14:05:06 -06:00
Chris Thrasher 458da959f5 Remove deprecated interfaces 2024-08-24 11:32:56 -06:00
Chris Thrasher 620fdbc530 Remove references to removed types 2024-08-24 08:28:50 -06:00
Chris Thrasher 3536aeafd6 Switch to #pragma once 2024-08-24 07:40:26 -06:00
Chris Thrasher db4d5e4815 Reenable some MSVC warnings 2024-08-23 14:29:06 -06:00
Chris Thrasher 41a269faa9 Update Catch2 2024-08-23 14:14:25 -06:00
Chris Thrasher 379e26ac99 Delay test discovery to ensure all DLLs get copied first 2024-08-23 12:48:47 -06:00