Commit Graph

471 Commits (88ec8a95231341e7962b85716510d414e9f0c424)

Author SHA1 Message Date
fredzio 6fd04cb8f6 Remove support for single-precision Bullet, fail during configuration instead of during linking. 4 years ago
Andrei Kortunov 124a33d8a3 Fix uninitialized variables 4 years ago
Andrei Kortunov 93954a961c Unlock mutex on return to avoid hang 4 years ago
AnyOldName3 3ad2335d11 Fix FetchContent Bullet with MSVC 4 years ago
psi29a f8d32c0576 Merge branch 'upd-mygui' into 'master'
Update MyGUI

Closes #5897

See merge request OpenMW/openmw!650
4 years ago
Gleb Mazovetskiy 493659d4f9 MSVC: extern/ tweaks to make it build
Not everything is supported but it does build with the following CMakeSettings.json
variables and dependencies from vcpkg:

      "variables": [
        { "name": "OPENMW_USE_SYSTEM_BULLET", "value": "False", "type": "BOOL" },
        { "name": "OPENMW_USE_SYSTEM_MYGUI", "value": "False", "type": "BOOL" },
        { "name": "OPENMW_USE_SYSTEM_OSG", "value": "False", "type": "BOOL" },
        { "name": "BULLET_STATIC", "value": "True", "type": "BOOL" },
        { "name": "OSG_STATIC", "value": "False", "type": "BOOL" },
        { "name": "MYGUI_STATIC", "value": "False", "type": "BOOL" }
      ],

What works: it builds

What does not work: Not all DLLs are copied into the output directory with this set up
(SDL2, MyGUI, Bullet, OSG, are not copied).
4 years ago
Gleb Mazovetskiy 918fd174f3 Set `MYGUI_DONT_USE_OBSOLETE=OFF`
Fixes https://gitlab.com/OpenMW/openmw/-/issues/5896
4 years ago
Gleb Mazovetskiy 36cea2073f Update MyGUI
Includes f01cba4bb3
Fixes https://gitlab.com/OpenMW/openmw/-/issues/5897
4 years ago
Gleb Mazovetskiy fe6b990f2e Update Bullet to improve performance
Updates Bullet to include https://github.com/bulletphysics/bullet3/pull/3287

This massively improves heightfield collision detection performance in
some areas.

E.g. with single-threaded bullet in the `--skip-menu` starting area
on my test desktop: 30 FPS -> 60 FPS
4 years ago
Gleb Mazovetskiy 1db7d2ec4e Restore compatibility with FFMpeg < 57.80.100
This should fix macOS Travis build broken by 58d33aa95b
4 years ago
Gleb Mazovetskiy 36bac353df AV: Handle varying video frame dimensions 4 years ago
Gleb Mazovetskiy 58d33aa95b AV: Fix all memory leaks
The most substantial memory leak came from `PacketQueue::get`
not unreferencing its argument packet.

Other leaks came from using `av_free` instead of type-specific free
functions.

Also modifies `PacketQueue::put` for readability.
4 years ago
Gleb Mazovetskiy eb93fdfbea Use unique_ptr with custom deleter for VideoPicture::rgbaFrame 4 years ago
Gleb Mazovetskiy b7076549a3 osg-ffmpeg-videoplayer: Fix crash on ARM
osg-ffmpeg-videoplayer handled frame allocation incorrectly.

It used a `vector<uint8_t>` as its buffer, meaning the addresses could
did not respect alignment.

Instead, changes it to use `AVFrame` as buffers, allocated via `av_image_alloc`.

We also now only allocate the buffer once, instead of on every frame,
which should improve the framerate of videos.

Fixes the following crash on startup on ARM:

> Invalid address alignment (signal 7)

Fixes #5807
4 years ago
Gleb Mazovetskiy 8a1644885b MyGUI: Bump version to 3.4.1
Also set MYGUI_DONT_USE_OBSOLETE
4 years ago
Gleb Mazovetskiy 1c9245bd58 Move recastnavigation to FetchContent 4 years ago
Gleb Mazovetskiy 3308c717f8 extern/CMakeLists.txt: Switch to openmw's OSG 4 years ago
Gleb Mazovetskiy 4098b455f5 extern/CMakeLists.txt: Bump OSG
All the necessary fixes have been upstreamed
4 years ago
Gleb Mazovetskiy 3d334dae75 Fix MYGUI/OSG_STATIC and BUILD_SHARED_LIBS 4 years ago
Gleb Mazovetskiy daf080ff19 cmake: Move MYGUI/OSG_STATIC default to top-level
Makes it clear that the USE_SYSTEM variables affect the defaults of
STATIC variables.
4 years ago
Gleb Mazovetskiy 377bd27aa7 set(BUILD_SHARED_LIBS ${OSG/MYGUI_STATIC}) 4 years ago
Gleb Mazovetskiy eba151884e Fix Android build
https://github.com/openscenegraph/OpenSceneGraph/pull/1037
4 years ago
Gleb Mazovetskiy f0febe095c extern/CMakeLists.txt: Set OSG/MYGUI_STATIC on PARENT_SCOPE 4 years ago
Gleb Mazovetskiy 402e43678c extern/CMakeLists.txt: Bump OSG 4 years ago
Gleb Mazovetskiy 98564b0aae cmake: move cmake_minimum_required bump to extern/CMakeLists.txt 4 years ago
Gleb Mazovetskiy 93fe84aea8 cmake: Move USED_OSG_(COMPONENTS|PLUGINS) from extern to top-level 4 years ago
Gleb Mazovetskiy 99ba45a308 Optional static builds of OSG, MyGUI, Bullet 4 years ago
Andrei Kortunov 7fc4c9f3f6 Avoid dead code 4 years ago
Andrei Kortunov 8084a336b5 Replace zeroes and nulls by nullptrs 4 years ago
elsid 9363bc2d48
Update recastnavigation to 6624e7aef5e15df11cb2f5673574df8e4c96af6a 4 years ago
Andrei Kortunov 8ca3c3b123 Mark overrided methods by override keyword 4 years ago
Eli2 257a6b4629 Use cmake method to enable interprocedural optimizations 4 years ago
Bret Curtis 0c2fea8254
Merge pull request #2932 from elsid/replace_open_threads
Replace OpenThreads by std types
5 years ago
Andrei Kortunov 230e06dec7 Make joysticks dead zone configurable (bug #5502) 5 years ago
elsid 40ad87bc4d
Replace OpenThreads by std types 5 years ago
Andrei Kortunov 2b4274bca8 Use modern Qt flag declarations 5 years ago
Bret Curtis 61a5c6125d #5480: Drop Qt4 support and require Qt 5.12 or later. 5 years ago
psi29a b9cd8d23a4 Merge branch 'cs-crash-on-exit-fix' into 'master'
Stop the CS crashing on exit - Close graphics context while it still exists

See merge request OpenMW/openmw!182
5 years ago
elsid 847cd41b01
Update recastnavigation to 57610fa6ef31b39020231906f8c5d40eaa8294ae 5 years ago
AnyOldName3 ac256f05ff Close graphics context while it still exists 5 years ago
Andrei Kortunov 2e7712a390 Fix C5204 warnings by adding default virtual destructors 5 years ago
Andrei Kortunov fd17a5acf4 Make R&D patch more noticable 5 years ago
Andrei Kortunov e1958b671e Make dtMeshTile POD 5 years ago
Andrei Kortunov 040d2675c6 Fix the C4267 MSVC warning 5 years ago
Andrei Kortunov ad256e8343 Validate input bindings to avoid crashes 5 years ago
Michael Stopa e4bec88a68 Implement mouse wheel bindings (bug #2679) 5 years ago
elsid acb939a81b
Update Recastnavigation to c40188c796f089f89a42e0b939d934178dbcfc5c 5 years ago
capostrophic 1f3740225b Purge unnecessary recast stuff 5 years ago
Andrei Kortunov 454bae2c43 Make PacketQueue fields atomic to avoid data races (e.g. with ParseThread) 6 years ago
Capostrophic 5f86933dc6 Merge upstream osgQt changes 6 years ago
Andrei Kortunov 46fee678a7 Place QWindow include under Qt version check 6 years ago
Andrei Kortunov 4aa21b9088 Do not swap buffers for non-exposed windows (bug #4911) 6 years ago
elsid dbf6780dde
Update Recastnavigation to 3a619d773deb7e3a15ee215217c825995fe71312 6 years ago
Capostrophic c9df63ffd1 Replace BSAOpt hash calculation with a custom function 6 years ago
Azdul a8c1c4315c Missing header on Linux 6 years ago
Azdul a3bcd95546 Merge branch 'cc9cii' of https://github.com/cc9cii/openmw into tes4_bsa 6 years ago
Azdul 42ea609d1d Remove files with incorrect Git history / attribution 6 years ago
Azdul 96d19e07ca Fix Linux build 6 years ago
Azdul 25650e65bf Read any BSA file - detection based on version in BSA header 6 years ago
Ilya Zhuravlev 07e9ce84b3 Replace volatile bools with std::atomic<bool> 6 years ago
Stanislaw Halik 59d96d808e fix missing include 6 years ago
Bret Curtis 63a2487630 bump /extern/recastnavigation to commit 3087e805b02d5eb8fff7851234fa2b3f71290eba; fixes clang warning about missing delete: https://github.com/recastnavigation/recastnavigation/issues/359 6 years ago
Andrei Kortunov f88d5e808c Rewrite media decoder to use FFMpeg 3.2+ API (task #4686) 6 years ago
elsid 70b5160bf1 Add files with recastnavigation current commit hash and url to clone 6 years ago
elsid 792a0585c0 Add recastnavigation as subdirectory 6 years ago
Andrei Kortunov 229d1bb425 Backport loop from tinyxml 2.6 to avoid CVE 6 years ago
cc9cii 5ad440cb45 TES4/TES5 ESM/ESP file reader.
To support the possibility of a standalone implementation of TES4, the ESM/ESP code is placed in the 'extern' folder.

Much more work needs to be done.
6 years ago
cc9cii 3982573035 BSA enhancements.
* Implement hash based lookup for TES3 BSA files.
* Added TES4/TES5 BSA support.
* Implemented a hack (non-portable code) in an attempt to reduce startup time under Windows because  Boost::filesystem seems to take forever on GetFileAttributeW.  This implementation uses FindFirstFile/FindNextFile/FindClose instead.
6 years ago
Andrei Kortunov 57e1462417 Do not use fall-through 6 years ago
Andrei Kortunov e4f862c0b9 Check if next char exists 7 years ago
elsid c71df7249d
Fix UTF-8 econding
To be able run gcovr
7 years ago
Andreas Sturmlechner 2c9d46a60b
Fix build with Qt 5.11_beta3 (dropping qt5_use_modules) 7 years ago
Harald H d3b623b5d3 http to https for supported urls (#1625)
* http to https for supported urls

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http tp https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* some url fixes

* http to https
7 years ago
Ilya Zhuravlev b4ec8aaf5e VideoState::queue_picture: ffmpeg expects a buffer of 4 pointers in sws_scale 7 years ago
scrawl 4c174ecd12 Merge changes to coverity scan script 7 years ago
scrawl 8d17565efd Fix joystick binding for an action being discarded when default for another action is loaded (Bug #3900) 8 years ago
scrawl ca5b351eef Fix saved joystick bindings being discarded when running without joystick connected 8 years ago
Bret Curtis 11c4aed4e5 algo needed for std::min/max in msvc2013 8 years ago
Bret Curtis d48b829b45 replace and purge boost::lexical_cast 8 years ago
Bret Curtis 39185e6f8c purge the rest of boost::shared and any other boost related things that no longer are required
put boost system back in, clean others up

revert Qt

add back boost fstream
8 years ago
Bret Curtis d785344fad purge all instances of <boost/shared_ptr.hpp>, clean up unused headers 8 years ago
Bret Curtis 07f75e1104 replace boost::shared_ptr in extern and components 8 years ago
Ewan Higgs 38a2de3c51 convert std::autor_ptr to std::unique_ptr, originally by Ewan Higgs and updated by Bret Curtis 8 years ago
scrawl 6f878327bf Fix unused ICS_MAX warning 8 years ago
Allofich 0f20312012 Fix MSVC warnings 8 years ago
scrawl 530fb61ad0 Use OpenThreads instead of boost thread
This should allow OpenMW to work better with git versions of openscenegraph. OSG dev version 3.5.5 added the setting of thread affinity for the main thread. The problem is that in the boost/standard threading libraries, the affinity of a thread is inherited by any further threads launched from that thread, leading to these threads always running on the same core as the main thread unless you tell them not to.

With OpenThreads, the default affinity of a thread is none, no matter what parent thread it was launched from.

So, when using custom threading with OSG 3.6+, we have these options:
1. explicitely tell OSG to *not* set the thread affinity
or 2. explicitely set the thread affinity of additional threads created (possible with boost, but not possible with std::thread)
or 3. use OpenThreads
or 4. accept the suboptimal performance of non-OSG threads (in OpenMW's case the sound streaming & video threads) running on the same core as the main thread

This patch opts for 3.)

Reference: http://forum.openscenegraph.org/viewtopic.php?t=16158
8 years ago
scrawl 0d439750a2 Clang warning fix 8 years ago
Roman Proskuryakov 28c63aea72 Uses FindTinyXML to find package 9 years ago
Aesylwinn 2f39a6e20d Fix camera input not being reset when focus for widget is lost. 9 years ago
scrawl a1f323f528 Fix build against OSG 3.5.3 9 years ago
Roman Proskuryakov da59ef0f67 Rewrites FindFFmpeg using LibFindMacros handling components properly 9 years ago
Bret Curtis 2c90b0b78d fix a few spelling mistakes 9 years ago
Aesylwinn 0e75b4a234 Remove warning about */ outside of comment 9 years ago
Aesylwinn 48047beb9a Stripped OSG mouse and keyboard handling. 9 years ago
scrawl 80392775ef Fix copy&paste error 9 years ago
scrawl 647a5e091f Add osgQt to the repository
Ensures that it will be built against the correct Qt version.
9 years ago
cc9cii 06f9922822 Performance improvements for loading Info records.
- The order of info records with the same topic are maintained in Collection::mRecords
- The index lookup data structure are not ordered.  The topic string is hashed.  The infos for the topic are simply placed in a vector.
- The index values for appending or inserting a record takes prev/next values (if exist)
- FIXME: prev/next values are not adjusted for adding or removing records
- FIXME: undo after reordering does not reset the modified flag
9 years ago
Bret Curtis 3ea3d07d44 really purge libav 9 years ago
Bret Curtis 39f89f967b from kcat: We can't simply get rid of this, otherwise it may break for certain kinds of packets. 9 years ago
Bret Curtis 8d2990cc03 add support for ffmpeg29 thanks to Andreas Cadhalpun; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803848 9 years ago