1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-30 21:32:42 +00:00

81 Commits

Author SHA1 Message Date
elsid
bda29819cf
Reduce include dependency for land records 2023-08-19 01:30:17 +02:00
elsid
dd54857610
Add missing array include 2023-07-29 00:29:03 +02:00
florent.teppe
7bc4fc6bf9 Fix issues on terrain change
terrain Preloader now preloads the right terrain
2023-05-29 11:32:14 +02:00
Evil Eye
9728024978 Replace compare with more idiomatic methods 2023-05-22 19:51:27 +02:00
florent.teppe
a3bd6e7e47 ESM::ExteriorCellIndex => ESM::ExteriorCellLocation 2023-05-12 22:05:55 +02:00
florent.teppe
141878f30d int x, int y , ESM::RefId worldspace => ESM::ExteriorCellIndex
also removed the changeToExteriorCell that only took a position as input, didn't work with esm4.
2023-05-12 22:05:53 +02:00
florent.teppe
d8a782425b can actually load and teleport to esm4 exterior spaces 2023-05-12 22:05:53 +02:00
jvoisin
5299065cad Simplify a funny-written function 2023-05-01 21:13:15 +02:00
florent.teppe
5bb9bfd224 CellPreloader::preload(CellStore& 2023-04-20 16:58:19 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
ζeh Matt
ddf43ec42f
Move structs into separate headers, cleanup includes, cleanup forwarders 2022-07-18 19:15:03 +03:00
Bret Curtis
d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
2022-01-23 17:04:48 +01:00
Bo Svensson
a854a6e04a
removes UnrefQueue (#3181)
Currently, we use an `UnrefQueue` which supposedly aims to transfer destruction costs to another thread. The implications of this unusual pattern can not be well understood because some allocators might free resources more efficiently if they are freed by the same thread that allocated them. In addition, `UnrefQueue` complicates the validation of thread safety in our engine. Lastly, our current usage of `UnrefQueue` triggers `ref()`, `unref()` atomic operations as objects are passed into the queue. These operations could be more expensive than the actual destruction.

With this PR we thus remove `UnrefQueue`. We can expect these changes to have a minor impact at most because we free most resources elsewhere in `ResourceSystem::updateCache`.
2021-10-20 23:02:15 +02:00
Bo Svensson
01cc61087b
improves paging preloader (#3126)
* Return check for distance when we try to reuse data

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* cellpreloader.cpp

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* quadtreeworld.cpp

* chunkmanager.cpp

* chunkmanager.cpp

* cellpreloader.cpp

* jvoisin

* whitespace

* whitespace
2021-09-27 21:32:18 +02:00
Bo Svensson
f62adab43a
Avoid the terrain sync completely in most cases (#3103)
We can take elsid's commit 605cb8d further by avoiding the terrain sync completely in most cases. Currently in changeCellGrid we wait for a new preloading task to ensure the getPagedRefnums for the new active cells have been filled in by object paging. This is usually not necessary because we have already completed a preload in the past containing these active cells. With this PR we remember what we preloaded and skip the terrain sync if it is not needed.
2021-09-16 22:11:19 +02:00
Bo Svensson
e2d0e86020
cellpreloader.cpp unused variable (#3102) 2021-09-11 20:58:42 +02:00
Bo Svensson
147ed39900
This PR solves a crash with Robert's bodies logged on your bugtracker. (#3095)
* attach.cpp [ci skip]

* attach.cpp [ci skip]

* attach.cpp [ci skip]

* npcanimation.cpp [ci skip]

* attach.hpp [ci skip]

* attach.cpp [ci skip]

* creatureanimation.cpp [ci skip]

* creatureanimation.cpp [ci skip]

* cellpreloader.cpp

* npcanimation.cpp

* attach.cpp

* make android adk happy

* make android adk happy

* changelog.md [ci skip]

* authors.md [ci skip]
2021-09-09 22:56:57 +02:00
elsid
605cb8db7c
Make sync terrain preloading sleep free
This reduces average time spent on in. 5 milliseconds as a base precision is
quite a lot considering that for 60 FPS frame time is 1000/16 = ~16.67 ms
when it's a cell loading frame and there is more important work to do rather
than sleeping.
2021-09-07 14:52:42 +02:00
elsid
153cd9a20c
Avoid redundant search for existing element 2021-07-12 11:41:21 +02:00
psi29a
9b017ef04d Merge branch 'internal_includes_openmw' into 'master'
Clean up some internal includes of the openmw component

See merge request OpenMW/openmw!796
2021-05-07 10:53:25 +00:00
jvoisin
d45184a730 Sprinkle some const-ref to avoid unnecessary copies 2021-05-02 14:43:46 +02:00
jvoisin
998cc97a4f And done! 2021-04-30 20:49:22 +02:00
Andrei Kortunov
9647b670e4 Do not declare unused variables 2021-04-19 15:43:00 +04:00
Alexei Dobrohotov
53f91a3aa5
Merge pull request #3018 from akortunov/emplace
Use emplace_back instead of push_back
2020-11-01 01:58:56 +03:00
Andrei Kortunov
065ed5138e Use emplace_back instead of push_back 2020-10-18 10:27:35 +04:00
Andrei Kortunov
8ca3c3b123 Mark overrided methods by override keyword 2020-10-16 22:18:54 +04:00
bzzt lost a hitlab login
b27b76e325 avoid pagerebuild when reloading a same save
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
6fa12a6eb8 preload tweak
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
c7fda6d280 activegrid paging = 2xfps
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
b4af2ac672 avoid blocking on pagerebuild
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
ffbed7ee38 loadingscreen
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt
d684f1a78f terrainbased objectpaging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
Andrei Kortunov
2e7712a390 Fix C5204 warnings by adding default virtual destructors 2020-03-26 14:49:12 +04:00
Andrei Kortunov
489e5c6cce Store preloaded terrain view in the main thread 2019-04-07 11:15:21 +04:00
bzzt
63ab7345be Reuse traversal result for different traversal with same view point
Rename eyePoint to viewPoint to match OSG conventions (eyePoint is the camera position, viewPoint is for LOD handling)
2019-04-07 11:14:37 +04:00
Andrei Kortunov
12f9184d00 Allow to interrupt terrain preloading 2019-03-09 13:15:23 +04:00
Andrei Kortunov
d23a0ce2ae Use C++11-style loops in the game world instead of iterators 2019-03-07 12:39:57 +04:00
Andrei Kortunov
3032b177a1 Remove redundant includes 2019-02-23 08:02:12 +04:00
Capostrophic
a71cfca580 Get rid of some remaining instances of C limit macros 2019-01-09 16:06:18 +03:00
Ilya Zhuravlev
07e9ce84b3 Replace volatile bools with std::atomic<bool> 2018-12-24 14:19:35 -05:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Andrei Kortunov
5a4d0cec3a Use new logging system for game itself 2018-08-14 23:05:43 +04:00
scrawl
e987fe85d0 Add abort flag to TerrainPreloadItem 2017-03-14 21:28:57 +01:00
scrawl
42e9891504 Fix issues caused by loading multiple views into the same terrain View 2017-03-14 20:27:55 +01:00
scrawl
97ed999097 Fix cleanup issue 2017-03-14 20:02:22 +01:00
scrawl
6ccb6009ee Use the View-based preloading for TerrainGrid as well 2017-03-14 19:27:56 +01:00
scrawl
3c29e2dbeb Refactor ownership of terrain views 2017-03-14 19:27:56 +01:00
scrawl
4549196b31 Use the new way of terrain preloading in CellPreloader/Scene 2017-03-14 19:27:56 +01:00
scrawl
35d53acc65 Factor out terrain chunk loading/caching into a new resource manager 2017-03-14 19:27:55 +01:00