1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-29 01:15:31 +00:00
openmw-tes3mp/apps/openmw/mwworld
fredzio 3c2504b442 Process movement queue in one or several background threads
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.

The number of threads is controlled by the numeric setting

[Physics]
async num threads

In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)

[Physics]
defer aabb update

Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.

[Physics]
lineofsight keep inactive cache

Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
2020-10-15 06:41:35 +02:00
..
action.cpp Make the PlayMode and PlayType enums scoped 2017-09-15 02:36:59 -07:00
action.hpp Adjustments to RemoveItem behavior 2017-04-13 22:33:13 +09:00
actionalchemy.cpp Include cleanup 2019-02-19 18:40:33 +03:00
actionalchemy.hpp Make Equip console command to bypass most of restrictions (bug #4460) 2018-07-11 00:06:21 +04:00
actionapply.cpp Added MWMechanics::isPlayerInCombat() 2015-09-10 18:48:34 +12:00
actionapply.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actiondoor.cpp
actiondoor.hpp
actioneat.cpp Include cleanup 2019-02-19 18:40:33 +03:00
actioneat.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actionequip.cpp Improve equipment logic (bug #5223) 2019-12-14 22:30:27 +04:00
actionequip.hpp Make Equip console command to bypass most of restrictions (bug #4460) 2018-07-11 00:06:21 +04:00
actionharvest.cpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
actionharvest.hpp Native graphics herbalism support (feature #5010) 2019-05-02 23:03:47 +04:00
actionopen.cpp Allow ActionOpen and ActionTalk only for player (bug #5210 2019-11-18 12:41:11 +04:00
actionopen.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actionread.cpp Implement sBookSkillMessage GMST 2018-04-02 21:12:38 +03:00
actionread.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actionrepair.cpp Remove redundant includes 2019-02-23 08:02:12 +04:00
actionrepair.hpp Make Equip console command to bypass most of restrictions (bug #4460) 2018-07-11 00:06:21 +04:00
actionsoulgem.cpp Include cleanup 2019-02-19 18:40:33 +03:00
actionsoulgem.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actiontake.cpp Use drag and drop for ActionTake when InventoryWindow is active (bug #4543) 2018-09-10 15:18:07 +04:00
actiontake.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actiontalk.cpp Allow ActionOpen and ActionTalk only for player (bug #5210 2019-11-18 12:41:11 +04:00
actiontalk.hpp Include cleanup 2019-02-19 18:40:33 +03:00
actionteleport.cpp Fix follower aggression when traveling. Summoning still has problems but less intrusive than current implementation. 2020-10-03 20:05:17 +00:00
actionteleport.hpp Fix follower aggression when traveling. Summoning still has problems but less intrusive than current implementation. 2020-10-03 20:05:17 +00:00
actiontrap.cpp Implement and use getDistanceToFacedObject() 2016-07-08 23:28:49 +09:00
actiontrap.hpp Include cleanup 2019-02-19 18:40:33 +03:00
cellpreloader.cpp avoid pagerebuild when reloading a same save 2020-06-13 00:22:28 +02:00
cellpreloader.hpp avoid pagerebuild when reloading a same save 2020-06-13 00:22:28 +02:00
cellref.cpp Avoid copying strings in SearchVisitor and readReferenceCollection 2019-10-28 19:28:14 +03:00
cellref.hpp Avoid copying strings in SearchVisitor and readReferenceCollection 2019-10-28 19:28:14 +03:00
cellreflist.hpp Fix possible reference duplication when the refID is modified by a plugin (Bug #3471) 2016-07-22 03:58:23 +02:00
cells.cpp Allow targeting non-unique actors with StartScript (bug #2311) 2020-05-10 14:57:06 +02:00
cells.hpp Allow targeting non-unique actors with StartScript (bug #2311) 2020-05-10 14:57:06 +02:00
cellstore.cpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
cellstore.hpp Allow targeting non-unique actors with StartScript (bug #2311) 2020-05-10 14:57:06 +02:00
cellvisitors.hpp Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
class.cpp Merge branch 'movement_refactoring' into 'master' 2020-08-27 11:54:30 +00:00
class.hpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
containerstore.cpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
containerstore.hpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
contentloader.hpp Remove redundant includes 2019-02-23 08:02:12 +04:00
customdata.cpp Native graphics herbalism support (feature #5010) 2019-05-02 23:03:47 +04:00
customdata.hpp Native graphics herbalism support (feature #5010) 2019-05-02 23:03:47 +04:00
datetimemanager.cpp Introduce a separate class to control world date and time 2020-06-05 12:07:32 +04:00
datetimemanager.hpp Introduce a separate class to control world date and time 2020-06-05 12:07:32 +04:00
doorstate.hpp Add enum type for door state 2019-08-25 15:21:00 +02:00
esmloader.cpp Silence -Wreorder warnings, and remove -Wno-reorder. 2015-05-21 22:46:44 -05:00
esmloader.hpp
esmstore.cpp Mutate base records when adding/removing spells 2020-07-28 08:33:28 +02:00
esmstore.hpp Comments to explain the arcane workings of Morrowind 2020-07-30 21:39:04 +02:00
failedaction.cpp Play locked sounds on locked objects instead of actors 2016-08-10 21:31:14 +09:00
failedaction.hpp Play locked sounds on locked objects instead of actors 2016-08-10 21:31:14 +09:00
globals.cpp Introduce a separate class to control world date and time 2020-06-05 12:07:32 +04:00
globals.hpp Remove NAME handling from MWWorld::Globals 2015-07-10 00:29:40 +03:00
inventorystore.cpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
inventorystore.hpp Support for multiple summons with same ID in the single spell 2020-08-28 21:14:54 +04:00
livecellref.cpp Use new logging system for game itself 2018-08-14 23:05:43 +04:00
livecellref.hpp Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
localscripts.cpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
localscripts.hpp Vanilla-compatible activate / onActivate (Fixes #1629) 2016-02-26 13:08:35 +01:00
manualref.cpp Added new method and variable to track float remainders of disintegration effections 2016-12-09 19:48:56 -07:00
manualref.hpp Move manualref code out of header 2015-02-09 15:01:49 +01:00
nullaction.hpp Add isNullAction() method to fix compiler warning 2016-06-11 18:26:20 +02:00
player.cpp Add many more godmode checks to harmful magic (bug #5633) 2020-10-09 20:36:51 +03:00
player.hpp Slightly reduce code duplication 2020-01-09 22:17:01 +03:00
projectilemanager.cpp Add RayCastingInterface 2020-08-06 22:03:33 +02:00
projectilemanager.hpp Only collect every unique magic bolt sound once (bug #4964) 2019-04-17 19:23:50 +03:00
ptr.cpp Added ConstContainerStoreIterator 2017-02-18 13:47:18 +00:00
ptr.hpp Added ConstContainerStoreIterator 2017-02-18 13:47:18 +00:00
recordcmp.hpp Include cleanup 2019-02-19 18:40:33 +03:00
refdata.cpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
refdata.hpp Rework container resolution (#3006) 2020-10-13 17:46:32 +02:00
scene.cpp Make the Object class manage its collision object and position. 2020-10-15 06:41:16 +02:00
scene.hpp Get rid of ECLD and dependencies 2020-06-17 13:09:16 +04:00
store.cpp profiling 2020-06-13 00:22:28 +02:00
store.hpp terrainbased objectpaging 2020-06-13 00:22:27 +02:00
timestamp.cpp Correct an error in the timestamp subtracting logic (Fixes #3105) 2015-12-26 00:26:13 +01:00
timestamp.hpp fixed warning C4099: 2015-03-06 21:36:42 +13:00
weather.cpp Weather-related fixes (incl. bug #4783) 2019-10-19 22:47:21 +03:00
weather.hpp Weather-related fixes (incl. bug #4783) 2019-10-19 22:47:21 +03:00
worldimp.cpp Process movement queue in one or several background threads 2020-10-15 06:41:35 +02:00
worldimp.hpp Process movement queue in one or several background threads 2020-10-15 06:41:35 +02:00