There were several errors when building OpenSceneGraph for Windows:
- using namespace std caused ambiguity with some symbols, and
DisplaySettings.cpp was already prepending std:: to all standard
symbols.
- ChangeDisplaySettingsEx returns a LONG [1], so casting to unsigned int
causes loss of precisions in some platforms.
[1]: https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsexa
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9581 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 8991aeb238dfe0539be4a73e65ce8e2ed2bfe1ee
Former-commit-id: ebe17105114bd97afe72520289ffd08fe5acfcae
Future commits shall patch these files to fix some build-time issues in
Windows. Since CMake lacks a PATCH command as of the time of this
writing, files must be copied entirely.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9580 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: d2542a7c4caffa37bc57550ba60ffab3bb0d383e
Former-commit-id: d8aaf4bbfd6017780ba1d3ffce8e600c388ea505
There are several errors when building plib for Windows:
- Casting a pointer to DWORD is unsafe because they might have different
sizes. DWORD_PTR [1] must be used instead.
- Casting a pointer to long is unsafe because they might have different
sizes. ptrdiff_t must be used for pointer arithmetic.
- slDSP::counter is private so it cannot be used by waveOutProc. A
public function is now defined to achieve the expected behaviour.
[1]: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/66d61dd8-2191-4a37-b963-e49bf0dc2579
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9579 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: d284052bb28c49e40714a36cdc135aa284a524fa
Former-commit-id: a5f73738a1f8f9a1687c5e071f20c99b0e83a4dd
Future commits shall patch these files to fix some build-time issues in
Windows. Since, as of the time of this writing, CMake lacks a PATCH
command, files must be copied entirely.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9578 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: ae23404d634e4146147f01f3d3d5faafccdea77e
Former-commit-id: bcde47f4b24ff356f32ebd222393bf731bed6ad8
These are in fact not required.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9577 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 32c552e368a378bb72549a9f2645926e2b69dedb
Former-commit-id: 31422c76cbbabd7ffef11d72979095274480262d
These are in fact not required.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9576 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: cf8c5bb154f76101dde4f94409bf480a7f0c886e
Former-commit-id: d08fb72e92fcefeb9820d177f4afd03a65510ba0
This should make the build simpler and less prone to build-time errors.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9575 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: c31b6a45de6bebb1f87038142cae3ecde9ad964a
Former-commit-id: 6c358e0f95f15a1d39b5aaace5817566cd651f58
cJSON simply does not depend on zlib, so there is no need to add the
build-time dependency.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9574 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 739aed907cb9276f8ae996375df0c5dd097956f0
Former-commit-id: 33073862552c3a1f17b319c831cc45af1bf5339d
This library is still not used by the project.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9573 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 58ed948f463edb3ccd75a443515f7fdef606e64c
Former-commit-id: 4ce9d326149365f0211d30baf4a432dfc87fb30e
The Windows build of the project completely relies on shared libraries
and makes no use of static libraries.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9572 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 3dd03a4f89a09978179f9996c428e9917ee0b930
Former-commit-id: caad9de0102ec4e68692c80ce6e2ac8becb876e0
This standard CMake variable allows CMake to find dependencies on
non-standard directories, such as ${EXTERNALS_INSTALL_DIR}.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9571 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: acacfb8605838769657058188fd5adfad2dc71af
Former-commit-id: 4a7917b408d3e109fe3627875d49c2bd0bc28326
Upstream rhash relies on a configure script, which is not portable to
non-POSIX platforms such as Windows.
Note: CMake support in rhash is only experimental [1] and currently
relies on in-house patches introduced by previous commits.
[1]: https://github.com/rhash/RHash/pull/103
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9570 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: f0888f552555ee6338877097ad5d98f2903886be
Former-commit-id: 0ff2548c35a6e833d74873cf8f34ab7fb61ff9fb
Upstream rhash requires to define RHASH_XVERSION as:
printf "0x%02x%02x%02x%02x" major minor patch 0
However, the CMakeLists.txt introduced by the experimental branch [1]
did not include this definition.
Since calculating this string requires complex string manipulation in
CMake, a new file, namely rhash-tohex.cmake, and a function with the
same name have been introduced.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9569 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: f4600f8fdd048d6638cfb600443c7c15e87cbc5e
Former-commit-id: 42557b46093e35d032de3d3aa7cf190ab5da3e9b
The experimental branch that introduced this CMakeLists.txt [1] is
probably outdated and does not reflect the current tree structure.
Note that test_lib.{c,h} and test_utils.{c,h} have been intentionally
left out since they are not meant to be part of the rhash library.
[1]: https://github.com/rhash/RHash/pull/103
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9568 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 81dfe170c24d4e7b4d7311835a30538fd741b8ab
Former-commit-id: 7deddae1e14c1037161844a4459b6b1c08ff5e8b
CMake support is only available from an experimental branch [1].
Future commits shall replace the rhash build defined on
3rdParty-devel/CMakeLists.txt so as to use CMake over the ad-hoc
configure script defined by upstream rhash.
The reason behind the change is to allow non-POSIX platforms (e.g.:
Windows) to configure the rhash project using CMake.
[1]: https://github.com/rhash/RHash/pull/103
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9567 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: d1264aa8d64953b9781cb6cf7c49f44cb5e95e2b
Former-commit-id: 431dea44caad0e54e68de9012fcb662965018b3f
This standard CMake variable allows to cross-build the project using a
so-called "toolchain file", which defines the cross-toolchain.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9565 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: c32ded0530faff50bb0266f994443ff9113714cc
Former-commit-id: 9309b1bb7568f2ba0c368e8550de01e941fdab74
These warnings are not relevant for other CMake generators, such as
"Unix Makefiles".
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9564 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: c55b1096df21d5ea77037c61ef967865bc6878d4
Former-commit-id: 7c5a6de53b4fddf313acf7dd693c299f5b5c79c3
Windows systems are case-insensitive. However, POSIX systems could fail
to find libwinmm.a, as distributed by the x86_64-w64-mingw32
cross-toolchain.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9561 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: ee33f425318e003be21d72f64daa3e6726607da0
Former-commit-id: 1b02cc82dc6ddfe2670a31c274d40fc3ac1a115f
Whereas Windows systems are case-insensitive, POSIX systems could fail
to find libssgAux accordingly.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9560 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: ecfbe7fddc04996fa305c4411089f98a7c2fc67e
Former-commit-id: d7ef6b509885f1a216f5c41ae708ad2c35ba5a64
For some unknown reason, HAVE_CONFIG_H is left undefined for Windows.
However, tgf.cpp has some references to SD_BUILD_INFO_SYSTEM and other
macros provided by config.h.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9559 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: a1c202a30f9760495dc3850f37769595a8d95d4d
Former-commit-id: 0183873c095831cb15adcaf9922a6843ca1f4c81
This source file depends on VERSION_LONG, which is defined by config.h.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9558 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 97290e42ecae6346c00ca6771368fb9a266ad5c5
Former-commit-id: a2ba63b918f8c04a032b87726b1d4bf143da6741
According to the documentation [1], SDL.h defines `main` as a macro
so as to perform automatic initialization and replaces the main
function with `SDL_main`. In order to avoid this behaviour, the
SDL_MAIN_HANDLED macro must be defined before including SDL.h.
This commit solves link-time undefined references to `main`.
[1]: https://wiki.libsdl.org/SDL2/SDL_SetMainReady
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9557 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: dc524d945dab929872060470a1073de283064883
Former-commit-id: e316320adb8e8697167f281a79968fd65af23327
These properties are not transmitted with git-svn(1) [1], which might
then cause failed patches when modifying lines close to these
properties.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9554 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 6ed21e1fe12d01a370842418c35722c75117a30a
Former-commit-id: 8ecd21b7c0211cd000b10b3f0032980f63c06398
This SVN-specific keyword [1] did not expand as expected on Git
repositories migrated from SVN via git-svn(1) [2]. Because of this,
applying patches with modifications would sometimes fail because, even
if these lines were not modified, they could be part of the context
lines, thus heavily confusing Git.
Since it is already expected to migrate from SVN to Git sometime soon,
this would also make $Id$ redundant.
[1]: https://svnbook.red-bean.com/en/1.7/svn.advanced.props.special.keywords.html
[2]: https://git-scm.com/docs/git-svn
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9550 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 7acf9a9675a0496a85ecd61210b8c29c89f9517a
Former-commit-id: 1878bb38889e4dddc83ef762b6b384f0f0a4ecc5
Reusing the same handle even when the menu exits introduced a bug when a
pointer to &rmRaceTypes.back() was used by rmOnSelectRaceMan, causing
undefined behaviour when rmRaceTypes was cleared by
rmOnRaceSelectShutdown.
Forcing RmRaceSelectInit to always initialise RmRaceSelectMenuHandle
fixes this because rmRaceTypes is now always initialised.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9549 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 6c0e86dab9a38df6e4c6fa1308bf1cbd517f743f
Former-commit-id: 059275634d4548949c15bdd54d25957e738ad754
This file was mostly using tabs, but some lines were inconsistently
indented with spaces.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9548 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: f08173cbe33aadcf1504b2b08adfdce82fcd6e64
Former-commit-id: 12006834fff008ab6ec9f64289eb479de4b26555
It is not portable to cast from/to void * to/from long without losing
precision.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9547 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 32f65435834d8eb531afd6332c65660d93b6d7b5
Former-commit-id: 4e0c836a31dc1b36b317ea684409f81f445a3160
No callback was defined for this call to gfuiGrButtonInit, so in fact
this pointer was useless.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9545 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 1cb69b3455a9b3d6a7028b4452fedaa253519aac
Former-commit-id: bac08cabb56f2e1ab36f54f45245a7b3a9fede75
Otherwise, winsock.h is implicitly #included by the Win32 API, which
might then conflict with winsock2.h.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9543 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 804a2f7686eef1b656a63225cbda4f89d7b36639
Former-commit-id: e52e533be7785034b1fdebad19bce1e9940c26f8
As opposed to C, C++ does not allow casting from void * to other pointer
types.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9542 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 4b30d393f723ce5ab551d93249d72a32feeab090
Former-commit-id: da5c06d9a2f96c81bec46ead1e56a24b3e6732fb
This is a 0-clause BSD-licensed, tiny hash library written in C and
widely available on both POSIX and Windows systems.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9539 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 2bdfd5a8b16647266a18c55e870b0013e948d08d
Former-commit-id: d56649b829919db5d7bd0774f25560ffd822185c
Despite its ubiquity, OpenSSL is a huge and complex library from which
only a couple of small features (SHA256 computation and pseudorandom
number generation) were being used by the project.
Therefore, this commit replaces OpenSSL with (much) smaller
dependencies.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9538 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: a46f6f8b0effd71d48affdac401e50ce32d4b1a8
Former-commit-id: a12159f5551c3875bb266f6c0de55650003489ab
This function makes use of system-specific interfaces to generate
cryptographically secure pseudorandom numbers.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9537 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 102329336b6055290791ee1ca7f5dd6b49e73d77
Former-commit-id: cc525465dc187bbcad98a6c9a6ec90f7132a7558
More portability functions shall be defined by future commits. Since it
is preferred to keep each function on its own source file, it is also
desirable to keep them on their own directories, based on the system
they were written for.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9536 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 13a58045307b4e6fbe00925ee1b5aec2316d285a
Former-commit-id: c18046b698e099e2c67c1825955a92531209b14d
These casts were dangerous and not accepted by more modern compilers,
such as GCC 14. In fact, all of them could be trivially replaced with
safe and portable alternatives.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9535 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: ba9c39525f91274c60086272d12b3b9b6bf7a451
Former-commit-id: f13171db00171b7c9d190019cbe807829a56103d
Any references to Win32-specific symbols should be precluded with this
header file to avoid undefined reference errors.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9534 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: a32d06d62773b99b8878b9dbecb6425c2cf7fcf5
Former-commit-id: a16cf8bd4dcd47c1fc82904138b9daa8a9737931
Unfortunately,
AbstractColorChooserPanel.setColorTransparencySelectionEnabled was
introduced by Java 9, whereas Speed Dreams still targets Java 8 (aka
1.8).
Despite the more confusing GUI, which allows users to adjust
transparency, it returns the same Color to the caller regardless
transparency, so no regressions are introduced.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9533 30fe4595-0a0c-4342-8851-515496e4dcbd
Former-commit-id: 747030115c46ef36e4e9e644e8c1c04cc26ccf2c
Former-commit-id: 2e4e0df74521e4f16371d8832cdd6b4f6e3e34f1