integrate sensglove libraries v2.301.0-c70bce637 and the required refactor to make it build/work

This commit is contained in:
Mamadou Babaei
2025-08-27 14:38:47 +02:00
parent a0f74e64b6
commit adc3b08723
370 changed files with 2220 additions and 506 deletions
+2
View File
@@ -104,6 +104,8 @@ Welcom to the SenseGlove Unreal Engine Handbook!
- [SenseGlove SDK License](license/senseglove-sdk.md)
- [SGBLE and SGBLExx Rust Dependencies Licenses](license/sgble-sgblexx-rust-dependencies.md)
- [Boost C++ Libraries License](license/boost-cpp-libraries.md)
- [{fmt} Formatting Library License](license/fmt-formatting-library.md)
- [Loguru Logging Library License](license/loguru-loggin-library.md)
- [Serial Communication Library License](license/serial-communication-library.md)
-----------
+23 -2
View File
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
This minor release focuses on delivering performance improvements, made possible by major optimizations in the underlying proprietary SenseGlove libraries, while also introducing some breaking changes.
### Added
- Added prebuilt binaries for third-party library [{fmt} Formatting Library](https://github.com/fmtlib/fmt) on all supported platforms. This third-party library is a required dependency of SenseGlove libraries >= `v2.300.0`.
- Added prebuilt binaries for third-party library: [Loguru Logging Library](https://github.com/emilk/loguru) on all supported platforms. This third-party library is a required dependency of SenseGlove libraries >= `v2.300.0`.
- Added third-party module `SGCommonThirdPartyLibs`.
- Added third-party module `SGConnectShmThirdPartyLibs`.
- Added third-party module `SGCoreShmThirdPartyLibs`.
- Added third-party module `SGFmtThirdPartyLibs`.
- Added third-party module `SGLogThirdPartyLibs`.
- Added third-party module `SGLoguruThirdPartyLibs`.
- Added third-party module `SGWjwwoodSerialThirdPartyLibs` to replace `SGSerialThirdPartyLibs` while retaining `SGSerialThirdPartyLibs` for a different purpose. See the relevant comment in the Changed section below.
### Fixed
- Fix a typo in the function name `SGDeviceList::SenseCommRunning()`. This fix breaks ABI and API compatibility with previous versions of the plugin and affects both C++ and Blueprint code.
@@ -14,7 +28,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- `SGDeviceList::SenseCommRunning()` has been renamed to `SGDeviceList::SenseComRunning()` due to a typo. This change breaks ABI and API compatibility with previous versions of the plugin and affects both C++ and Blueprint code.
- Bumped the SenseGlove libraries to `v2.205.1-cb26979ed`.
- Bumped the SenseGlove libraries to `v2.301.0-c70bce637`. This release of the SenseGlove libraries disables RTTI/Exceptions for the most parts and isolates it to a minor portion of the code base, which yields noticable performance gains. Futhermore, some optiomizations are done in the multi-threaded code, such as replacing Spinlocks with Adaptive Mutexes (a hybrid Mutex/Spinlock).
- As a result of SenseGlove libraries >= `v2.300.0` changing it's directory structure, the `ThirdParty` folder's directory structure has been revamped.
- Renamed third-party module `SGSerialThirdPartyLibs` to `SGWjwwoodSerialThirdPartyLibs` since SenseGlove libraries >= `v2.300.0` ships a new static library named `sgserial`. Thus, to avoid confusion and naming conflicts the third-party `serial` static library is now provided by the `SGWjwwoodSerialThirdPartyLibs` module and `sgserial` is provided by the `SGSerialThirdPartyLibs` module.
### Removed
@@ -24,6 +40,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Cleaned up remnants of the long-removed Unreal Engine `5.2` from `SenseGlove.Build.cs`, `SenseGloveKismet.Build.cs`, `SenseGloveTracking.Build.cs`, files.
- Cleaned up remnants of the long-removed Unreal Engine `5.2` from `SenseGloveTracking` module.
### Documentation
- Added [{fmt} Formatting Library License](../license/fmt-formatting-library.html) section.
- Added [Loguru Logging Library License](../license/loguru-loggin-library.html) section.
## [2.6.3] - 2025-06-27
This patch release contains no changes to the plugin code. It includes only documentation updates and improvements.
@@ -1032,4 +1053,4 @@ This is a minor release focusing on adherence to the Unreal Engine Marketplace G
### Added
- Initial public release of the SenseGlove haptic API for Unreal Engine with support for Microsoft Windows and GNU/Linux.
- Initial public release of the SenseGlove haptic API for Unreal Engine with support for Microsoft Windows and GNU/Linux.
+25 -21
View File
@@ -69,17 +69,17 @@
├── include (header files)
│ │
── boost
│ │
├── SenseGlove
├── BLE (SGBLE headers)
├── Connect (SGConnect headers)
── Core (SGCoreCpp headers)
│ │
└── serial
── SenseGlove
├── BLE (SGBLE headers)
├── Common (SGCommon headers)
├── Connect (SGConnect headers)
── Core (SGCore headers)
└── Log (SGLog headers)
├── lib (platform-specific pre-built binary dependencies)
│ │
@@ -87,13 +87,13 @@
│ │ │
│ │ └── r25b (Android NDK r25b dependencies for UE 5.1+)
│ │ │
│ │ ├── arm64 (64-bit ARM variant of Android)
│ │ ├── aarch64 (64-bit ARM variant of Android)
│ │ │ │
│ │ │ ├── debug
│ │ │ │
│ │ │ └── release
│ │ │
│ │ └── x64 (64-bit x86-64 variant of Android)
│ │ └── x86-64 (64-bit x86-64 variant of Android)
│ │ │
│ │ ├── debug
│ │ │
@@ -157,19 +157,23 @@
│ │ │
│ │ └── release
│ │
│ └── win64
│ └── windows
│ │
│ ├── msvc143 (Microsoft Visual Studio 2022 dependencies)
│ ├── v143 (Microsoft Visual Studio 2022 dependencies)
│ │ │
│ │ ── debug
│ │ │
│ │ └── release
│ │ ── x86-64 (dependencies targeting Microsoft Windows x86-64 architecture)
│ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ └── rustc (Microsoft Windows binary dependencies built with Rust)
│ │
── debug
│ │
└── release
── x86-64 (dependencies targeting Microsoft Windows x86-64 architecture)
├── debug
│ │
│ └── release
├── SGBleThirdPartyLibs (Third-party module providing SGBLE headers and libraries)
@@ -0,0 +1,31 @@
# {fmt} Formatting Library License
```
Copyright (c) 2012 - present, Victor Zverovich and {fmt} contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--- Optional exception to the license ---
As an exception, if, as a result of your compiling your source code, portions
of this Software are embedded into a machine-executable object form of such
source code, you may redistribute such embedded portions in such object form
without including the above copyright and permission notices.
```
@@ -0,0 +1,28 @@
# Loguru Logging Library License
```
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org>
```
+2
View File
@@ -7,6 +7,8 @@ The following third-party software are used and shipped with the SenseGlove Unre
- [The SenseGlove SDK (a.k.a. SenseGlove Backend Libraries, or SenseGlove Core Libraries)](senseglove-sdk.md)
- [SGBLE and SGBLExx Rust Dependencies](sgble-sgblexx-rust-dependencies.md)
- [The Boost C++ Libraries](boost-cpp-libraries.md)
- [The {fmt} Formatting Library](fmt-formatting-library.md)
- [The Loguru Logging Library License](loguru-loggin-library.md)
- [The Serial Communication Library](serial-communication-library.md)
For more information consult their own respective open-source licenses, please.
+2
View File
@@ -110,4 +110,6 @@ The appendix contains various extra useful information:
- [SenseGlove SDK License](../license/senseglove-sdk.md)
- [SGBLE and SGBLExx Rust Dependencies Licenses](../license/sgble-sgblexx-rust-dependencies.md)
- [Boost C++ Libraries License](../license/boost-cpp-libraries.md)
- [{fmt} Formatting Library License](../license/fmt-formatting-library.md)
- [Loguru Logging Library License](../license/loguru-loggin-library.md)
- [Serial Communication Library License](../license/serial-communication-library.md)