elsid
bbfdb347bd
Skip load cell ref when there is no need
...
Primarily to avoid temporary allocations by ESMReader::getHString.
2022-04-08 19:16:38 +02:00
elsid
5156ee94be
Store static id key in lower case
2022-04-08 01:22:48 +02:00
Bret Curtis
c376f3793e
check that the index is now -1; otherwise bad things happen
2022-04-07 00:09:11 +02:00
Bret Curtis
0db5415976
refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md
2022-04-07 00:09:11 +02:00
Wolfgang Lieff
ead73fce31
initial NiFltAnimationNode support
2022-04-07 00:09:11 +02:00
Petr Mikheev
3af8ea5dfc
Update Lua bindings for the camera
2022-04-06 21:55:05 +02:00
Nelsson Huotari
6869fa18e4
Fix unsafe memory access at object.cpp
2022-03-26 15:16:22 +00:00
ζeh Matt
129d68e299
Fix #6660 : Crash during intro video when closing the game
2022-03-03 20:25:35 +02:00
Bret Curtis
ad11cc8d8a
reinstall fontconfig as needed; const an imbigious == operator
2022-03-01 10:53:01 +01:00
elsid
6fd251e8f7
Avoid starting async png writing when overlay image is null
2022-02-19 21:41:40 +01:00
Alexei Kotov
4fdf55601c
Merge branch 'bigboi' into 'master'
...
Force a scale update when changing view modes
Closes #6623
See merge request OpenMW/openmw!1662
2022-02-16 22:29:13 +00:00
Evil Eye
f9da792386
Force a scale update when changing view modes
2022-02-15 17:25:07 +01:00
elsid
a4d7b72511
Write png image of the global map for save asynchronously
...
Write global map to the save file last to give more time for async job to
finish.
2022-02-13 21:42:36 +01:00
glassmancody.info
8c2c322d92
add stencil to water RTTs, reword some comments
2022-02-07 14:35:15 -08:00
glassmancody.info
bbc9c53423
support morrowind stenciling
2022-02-07 11:51:59 -08:00
elsid
16cfdfec19
Avoid unnecessary computation
...
And fix UBSAN error:
/home/elsid/dev/openmw/apps/openmw/mwrender/renderingmanager.cpp:659:81: runtime error: division by zero
#0 0x556eac16f4dc in MWRender::RenderingManager::configureAmbient(ESM::Cell const*) /home/elsid/dev/openmw/apps/openmw/mwrender/renderingmanager.cpp:659
#1 0x556eadfd3d60 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:467
#2 0x556eadfe3047 in MWWorld::Scene::changeToInteriorCell(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:830
#3 0x556eadeb8fb3 in MWWorld::World::changeToInteriorCell(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:978
#4 0x556eadeba5f1 in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1008
#5 0x556eaeb852dd in MWState::StateManager::loadGame(MWState::Character const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:533
#6 0x556eaeb81674 in MWState::StateManager::loadGame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:366
#7 0x556eaebd2aae in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1025
#8 0x556eaeba810a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:221
#9 0x556eaf865e9a in wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205
#10 0x556eaeba8368 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:233
#11 0x7f89773b3b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
#12 0x556eac13c09d in _start (/home/elsid/dev/openmw/build/gcc/ubsan/openmw+0x669c09d)
2022-02-03 00:08:45 +01:00
Alexei Dobrohotov
142b6fdf2f
Fix double precision bound issues in std::max/std::clamp
2022-02-02 16:57:59 +03:00
uramer
c31dedb89c
Implement Yaw, Pitch and Use (attack / cast spell) in Lua self.controls
2022-02-01 18:47:20 +00:00
Bret Curtis
74e7cfc023
remove unused includes: part1
...
remove unused imports: part2
revert one tidy we will keep for c++20
2022-01-23 17:30:25 +01:00
Bret Curtis
cdbab2325f
rename esmterrain to esm3terrain
2022-01-23 17:19:30 +01: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
Cody Glassman
9cafc31c0d
Restore ripples with soft particles
2022-01-19 11:32:38 +00:00
Cody Glassman
8ec0a52605
Toggable day night switch ( #5928 )
2022-01-11 09:34:19 +00:00
psi29a
a1f8db7600
Merge branch 'bright_spells' into 'master'
...
Replicate Morrowind spell lighting (#4949 )
Closes #4949
See merge request OpenMW/openmw!1544
2022-01-09 11:07:14 +00:00
cody glassman
8216410e7d
add white ambient to spell VFX as in Morrowind
2022-01-08 16:19:42 -08:00
cody glassman
e32d3d11ce
ensure readbuffer is bound before using glReadPixels
2022-01-08 16:12:24 -08:00
psi29a
d8d7a3b372
Merge branch 'softparticles_patch' into 'master'
...
Shadervisitor adjustments and Mac OS fix for soft particles
See merge request OpenMW/openmw!1380
2022-01-06 13:13:52 +00:00
psi29a
e0612db01c
Merge branch 'viewport_update' into 'master'
...
Use updated resolutions when setting projection matrix
See merge request OpenMW/openmw!1533
2022-01-05 10:43:30 +00:00
Cody Glassman
a7166aa05c
Use updated resolutions when setting projection matrix
2022-01-05 10:43:30 +00:00
psi29a
5eba352c98
Merge branch 'correct_depth_function' into 'master'
...
Use correct depth functions (#6537 )
Closes #6537
See merge request OpenMW/openmw!1534
2022-01-05 08:38:05 +00:00
glassmancody.info
909aa43ba1
update sky particle node correctly
2022-01-04 14:10:39 -08:00
glassmancody.info
2c52695361
fix regression where LEQUAL was used instead of LESS for depth function
2022-01-04 12:23:37 -08:00
elsid
01c712d5f1
Split navigator settings into subtypes
...
Mostly to distinguish settings that affect properties of the generated navmesh.
2021-12-10 23:55:03 +01:00
psi29a
7256654f29
Merge branch 'navmesh_render' into 'master'
...
Rework navmesh render (#6187 )
See merge request OpenMW/openmw!1338
2021-12-02 10:34:41 +00:00
psi29a
e221013692
Merge branch 'recalculate-projection-matrix-on-window-resize' into 'master'
...
Recalculate the Projection Matrix every time the window is resized.
See merge request OpenMW/openmw!1382
2021-11-30 16:00:31 +00:00
OnlyForF1
c5b33185b5
Recalculate the Projection Matrix every time the window is resized.
2021-11-30 16:00:30 +00:00
Bret Curtis
246912f73a
Merge pull request #3206 from akortunov/groundcover_loading
...
Use a separate storage for groundcover data
2021-11-29 20:09:21 +01:00
Evil Eye
a231037449
Merge branch 'accumroot' into 'master'
...
Use the anim source to find mAccumRoot (bug #6417 )
Closes #6417
See merge request OpenMW/openmw!1431
2021-11-25 19:13:21 +00:00
Alexei Dobrohotov
fd58e5ba77
Use the anim source to find mAccumRoot (bug #6417 )
2021-11-23 04:53:03 +03:00
glassmancody.info
44d5c96183
sunglare fix
2021-11-22 17:35:00 -08:00
elsid
cffcb6a897
Share state set between all navmesh tiles
...
Do not change GL_DEPTH because it's always disabled anyway.
2021-11-21 18:01:26 +01:00
elsid
3c41d0efc3
Render each navmesh tile independently
2021-11-21 17:42:27 +01:00
elsid
6b7363bd59
Replace generation and revision by version
2021-11-21 17:40:54 +01:00
glassmancody.info
9389cfaa42
mac os driver workaround and shadervisitor fixes
2021-11-20 18:39:20 -08:00
Cody Glassman
d85f772269
Depth refactor
2021-11-21 02:25:05 +00:00
Petr Mikheev
f42badd7be
Dehardcode camera
2021-11-19 20:37:21 +01:00
Petr Mikheev
47cbdcba15
Camera refactoring
2021-11-19 20:37:21 +01:00
Evil Eye
c277e8bf3f
Unset store listeners for creatures
2021-11-15 16:31:38 +01:00
psi29a
d4e8a58351
Merge branch 'headsup' into 'master'
...
Force assign head animation timer (bug #4389 )
Closes #4389
See merge request OpenMW/openmw!1361
2021-11-14 19:59:31 +00:00
Andrei Kortunov
3275440f0d
Use a separate storage for groundcover data
2021-11-14 19:11:42 +04:00
Andrei Kortunov
dce4cceb39
Support deleted CellRefs in groundcover (bug 6276)
2021-11-14 13:23:10 +04:00
Bo Svensson
a62b22cd31
isolates groundcover content files ( #3208 )
...
Specifications developed in PR #3206 require that groundcover content files must not be allowed to corrupt normal content files. With this PR we simply isolate our existing loading logic by instantiating a separate `ESMStore` for `Groundcover`. In addition, we remove some outdated workarounds.
2021-11-13 23:37:53 +01:00
psi29a
68e7a4083e
Merge branch 'master' into 'master'
...
Overhaul raindrop water ripple effect
Closes #6360
See merge request OpenMW/openmw!1316
2021-11-13 21:44:25 +00:00
Alexei Dobrohotov
9880c43c86
Add specular strength shader parameter
2021-11-10 19:58:06 +03:00
Alexei Dobrohotov
835bec0ed1
Fix stupid typo
2021-11-10 09:36:01 +03:00
psi29a
5836d0225f
Merge branch 'leave_butter_to_soften' into 'master'
...
Soft Particles (#6128 )
See merge request OpenMW/openmw!980
2021-11-09 14:16:47 +00:00
psi29a
28589b9692
Merge branch 'holsteredshield-already-has-shaders' into 'master'
...
Remove redundant recreateShaders
See merge request OpenMW/openmw!1368
2021-11-09 14:12:43 +00:00
Bret Curtis
f2bc179b0a
Add groundcover back into view
2021-11-09 10:20:32 +01:00
Bo Svensson
5f1bf89369
improves groundcover view distance ( #3219 )
...
This PR aims to solve all issues with `Groundcover` view distance handling in a satisfying way while preserving other optimisations that benefit other features. The main idea here is not to rely on `ViewData` updates for distance culling calculations because we can not accurately determine distance against lazily updated views. Instead, we perform an accurate measurement in a cull callback we can run every frame in `Groundcover` itself. While we do have to add some code to handle this feature, it is quite loosely coupled code that could be useful elsewhere in the future. These changes should address a performance regression @akortunov experienced.
2021-11-08 10:27:42 +01:00
AnyOldName3
90ce50190e
Remove redundant recreateShaders
2021-11-08 00:49:10 +00:00
Bo Svensson
2e031f195b
fixes LightBufferBinding messages ( #3223 )
...
This PR aims to solve `uniform block LightBufferBinding has no binding` messages @glassmancody has reportedly encountered since PR #3110 due to an apparent bug in OSG. While we do have to add a workaround here that adds a bit of clunkiness, #3216 should allow us to clean up these interactions a bit in the future.
2021-11-07 18:26:02 +01:00
Alexei Dobrohotov
e125308dd8
Force assign head animation timer (bug #4389 )
2021-11-07 14:10:51 +03:00
psi29a
627f816348
Merge branch 'navigator_impl' into 'master'
...
Reduce the size of included code from detournavigator/ into the engine
See merge request OpenMW/openmw!1355
2021-11-07 07:57:22 +00:00
wareya
6d98866be0
Merge remote-tracking branch 'upstream/master'
2021-11-06 11:44:12 -04:00
Evil Eye
5fbfbb3d84
Merge branch 'clamp' into 'master'
...
Make better use of std::clamp
See merge request OpenMW/openmw!1357
2021-11-06 12:07:24 +00:00
Alexei Dobrohotov
7a0c13fcf8
Make better use of std::clamp
2021-11-06 08:47:32 +03:00
Alexei Kotov
9e2b132508
Merge branch 'dont_linger_weather' into 'master'
...
Stop lingering weather effects (#6387 )
See merge request OpenMW/openmw!1349
2021-11-06 05:38:16 +00:00
elsid
6b30d375fa
Replace detournavigator includes by forward declarations
2021-11-06 00:48:39 +01:00
Bo Svensson
0371072631
removes lowerCaseInPlace ( #3217 )
...
This PR removes unneeded `lowerCaseInPlace` calls in in a hot path of `objectpaging.cpp` that are no longer necessary after PR #3197 . In addition, I have been informed that these changes should by coincidence address a compiler specific compilation error we currently experience.
2021-11-04 22:20:06 +01:00
Bo Svensson
3042c000c6
fixes setActorFade logic errors ( #3195 )
...
* resets state updater to apply light settings (#3141 )
resets state updater to apply light settings
With this PR we achieve the same effect with fewer lines of code.
* fixes LightSource logic errors
We currently update `LightSource::setActorFade` in `TransparencyUpdater`. There are several logic errors inherent in this approach:
1. We fail to update `LightSource::setActorFade` for off screen actors because their `TransparencyUpdater` cull callback is not invoked.
2. We fail to update `LightSource::setActorFade` in the instant that a `TransparencyUpdater` is removed.
3. We fail to update `setActorFade` when an `mExtraLightSource` is created after calling `Animation::setAlpha`.
With this PR we avoid such issues by updating `LightSource::setActorFade` in `Animation::setAlpha` and `Animation::addExtraLightSource` instead.
2021-11-04 16:53:57 +01:00
glassmancody.info
4c3dd1a964
remove particle node when resetting particle effect
2021-11-04 08:42:22 -07:00
Evil Eye
a9106f4d7c
Rotate torches by 90 degrees
2021-11-02 18:01:22 +01:00
Evil Eye
3660d5cc4c
Reduce code duplication in getting the shield model
2021-11-01 19:33:29 +01:00
wareya
838fc634c6
address review comments
2021-10-31 15:32:24 -04:00
wareya
e1378cd290
Replace uniform with define
2021-10-31 13:18:19 -04:00
wareya
226d3eac0d
Improve performance, add simpler ripples, add a setting, fix nighttime brightness
2021-10-31 10:33:28 -04:00
Bo Svensson
356e9d7cf0
refactors osg::Callback virtual inheritance ( #3200 )
...
With this PR we refactor `SceneUtil::KeyframeController` not to require `virtual osg::Callback` inheritance. I suppose such `virtual` overhead is not justified here because it negatively impacts many other classes we derive from `osg::Callback`.
2021-10-30 22:43:18 +02:00
glassmancody.info
8c3b00164e
soft particles
2021-10-30 12:19:31 -07:00
Bo Svensson
7d34149adc
consolidates createUnlitMaterial ( #3203 )
...
With this PR we remove a few duplicate lines of code by adding a parameter to `createUnlitMaterial`.
2021-10-30 19:19:58 +02:00
Bo Svensson
7e6533f0f3
refactors screenshot360 ( #3202 )
...
With this PR we refactor screenshot360 not to manually adjust node masks.
2021-10-30 19:10:16 +02:00
glassmancody.info
f0eb068e4b
remove dead code and fix changelog entry
2021-10-29 18:50:04 -07:00
psi29a
b3f84df43c
Merge branch 'sky_shaders' into 'master'
...
Sky shaders
See merge request OpenMW/openmw!1057
2021-10-27 20:25:40 +00:00
psi29a
fb3675d523
Merge branch 'improved_toggleworld' into 'master'
...
Improved toggle world (#6364 )
See merge request OpenMW/openmw!1320
2021-10-27 18:00:56 +00:00
glassmancody.info
e436147c10
improved toggle world
2021-10-27 09:16:01 -07:00
glassmancody.info
ba4f1921ab
overrides
2021-10-25 15:04:55 -07:00
Bo Svensson
1ff8318a52
refactors premultiplied alpha ( #3189 )
...
With this PR we refactor a `premultiplied alpha` user string set by `characterpreview.cpp` into a more flexible mechanism allowing us to assign any state to GUI textures. We can consider these changes more future proof than the previous approach.
2021-10-25 09:28:32 +02:00
Bo Svensson
7f9beac3a7
refactors a case insensitive map ( #3184 )
...
This PR aims to spark the retirement of a questionable pattern I have found all over our code base. I will illustrate how this pattern encourages code duplication, lacks type safety, requires documentation and can be prone to bugs.
```
std::map<std::string, Object> mMap; // Stored in all lowercase for a case-insensitive lookup
std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.emplace(lowerKey, object);
std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.find(lowerKey);
mMap.find(key); // Not found. Oops!
```
An alternative approach produces no such issues.
```
std::unordered_map<std::string, Object, Misc::StringUtils::CiHash, Misc::StringUtils::CiEqual> mMap;
mMap.emplace(key, object);
mMap.find(key);
```
Of course, such an alternative will work for a `map` as well, but an `unordered_map` is generally preferable over a `map` with these changes because we have moved `lowerCase` into the comparison operator.
In this PR I have refactored `Animation::mNodeMap` accordingly. I have reviewed and adapted all direct and indirect usage of `Animation::mNodeMap` to ensure we do not change behaviour with this PR.
2021-10-25 09:18:26 +02:00
glassmancody.info
9cbbd2fff5
better transitions
2021-10-24 17:13:42 -07:00
glassmancody.info
1e40d27318
introduce sky shaders
2021-10-23 17:53:38 -07:00
Bo Svensson
c9c8d02332
fixes a crash ( #3183 )
...
This PR fixes a crash caused by the improperly ensured lifetime of RigGeometry::mSourceGeometry. mSourceGeometry was not adequate to ensure mSourceGeometry would outlive mGeometry because we extend mGeometrys lifetime beyond this lifetime by passing mGeometry to the draw traversal instead of this.
In addition,
We add important comments.
We detect and prevent generally unsafe operations in high level code.
We add a sprinkling of const to help clarify intentions.
2021-10-23 10:31:46 +02: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
psi29a
2f0484f4fc
Merge branch 'clear_me_not' into 'master'
...
Do not clear depth buffer in first person (#6078 )
Closes #6078
See merge request OpenMW/openmw!1119
2021-10-17 09:30:30 +00:00
glassmancody.info
cc009d246f
do not clear depth buffer in first person
2021-10-16 18:37:34 -07:00
elsid
d06e697356
Initialize RenderingManager fields before use
...
PostProcessor is constructed before mNearClip, mViewDistance, mFieldOfView are
initialized and the constructor calls updateProjectionMatrix that uses these
fields.
==16218== Conditional jump or move depends on uninitialised value(s)
==16218== at 0x722EBE: min<float> (stl_algobase.h:235)
==16218== by 0x722EBE: MWRender::RenderingManager::updateProjectionMatrix() (renderingmanager.cpp:1183)
==16218== by 0x7D022F: MWRender::PostProcessor::PostProcessor(MWRender::RenderingManager&, osgViewer::Viewer*, osg::Group*) (postprocessor.cpp:144)
==16218== by 0x728B41: MWRender::RenderingManager::RenderingManager(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DetourNavigator::Navigator&) (renderingmanager.cpp:452)
==16218== by 0xBB5E65: MWWorld::World::World(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, Files::Collections const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ToUTF8::Utf8Encoder*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (worldimp.cpp:190)
==16218== by 0xDEEA6F: OMW::Engine::prepareEngine(Settings::Manager&) (engine.cpp:789)
==16218== by 0xDF2068: OMW::Engine::go() (engine.cpp:959)
==16218== by 0xDE7B8F: runApplication(int, char**) (main.cpp:220)
==16218== by 0x1006593: wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debugging.cpp:205)
==16218== by 0x7152C3: main (main.cpp:232)
==16218==
==17455== Conditional jump or move depends on uninitialised value(s)
==17455== at 0x4F8613F: osg::Matrixd::makeFrustum(double, double, double, double, double, double) (Matrix_implementation.cpp:916)
==17455== by 0x4EC0E11: osg::Camera::setProjectionMatrixAsPerspective(double, double, double, double) (Matrixd:580)
==17455== by 0x722DDA: MWRender::RenderingManager::updateProjectionMatrix() (renderingmanager.cpp:1167)
==17455== by 0x7D01EF: MWRender::PostProcessor::PostProcessor(MWRender::RenderingManager&, osgViewer::Viewer*, osg::Group*) (postprocessor.cpp:144)
==17455== by 0x728BA1: MWRender::RenderingManager::RenderingManager(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DetourNavigator::Navigator&) (renderingmanager.cpp:453)
==17455== by 0xBB5E25: MWWorld::World::World(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, Files::Collections const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ToUTF8::Utf8Encoder*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (worldimp.cpp:190)
==17455== by 0xDEEA3F: OMW::Engine::prepareEngine(Settings::Manager&) (engine.cpp:789)
==17455== by 0xDF2038: OMW::Engine::go() (engine.cpp:959)
==17455== by 0xDE7B5F: runApplication(int, char**) (main.cpp:220)
==17455== by 0x1006563: wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debugging.cpp:205)
==17455== by 0x7152C3: main (main.cpp:232)
==17455==
2021-10-16 00:43:31 +02:00
Bo Svensson
fc9ab97950
sky.cpp
2021-10-13 10:08:28 +00:00
Bo Svensson
ef906cbfa8
improves MWClass mapping ( #3166 )
...
Currently, we use a peculiar mapping of ESM classes by their std::type_info::name. This mapping is an undefined behaviour because std::type_info::name is strictly implementation defined. It could return a non-unique value on some platforms. With this PR we use the unsigned int sRecordId of the ESM class as a more efficient lookup type that does not build on undefined behaviour. We can expect marginally faster save-game loading with these changes as well.
2021-10-11 13:46:21 +02:00
Bo Svensson
98f8295765
allows to skip ComputeLightSpaceBounds traversal ( #3152 )
...
Currently, we always traverse the scene graph an additional time with a ComputeLightSpaceBounds visitor during shadow casting. ComputeLightSpaceBounds is only useful when the shadow casting mask allows us to shrink the bounds of the rendered scene, so we guard its traversal with a check against getCastsShadowTraversalMask. In practice, this guard never works because we build the traversal mask inclusively.
With this PR we limit the getCastsShadowTraversalMask check to relevant masks. This new check allows us to skip a superfluous ComputeLightSpaceBounds traversal with most settings.
2021-10-11 11:27:50 +02:00
psi29a
f9124ccea6
Merge branch 'recast_mesh_slope' into 'master'
...
Use different colors for walkable and non-walkable recast mesh triangles
See merge request OpenMW/openmw!1277
2021-10-11 08:56:04 +00:00
Bo Svensson
cbcdd705ee
minor objectpaging.cpp scene graph optimisations ( #3155 )
...
We now use PositionAttitudeTransform for unmerged nodes because I have been informed PositionAttitudeTransform's scene graph performance is measurably faster than MatrixTransform's. We still need to use MatrixTransform for merged nodes because the Optimizer has limited support for non-MatrixTransform nodes. These MatrixTransforms will be removed in the merging process anyway.
2021-10-11 10:09:01 +02:00
elsid
0c8a811ad5
Render only cached recast mesh
...
To avoid waiting while recast mesh is generating.
Remove redundant continue.
2021-10-10 13:13:57 +02:00
Bo Svensson
787f91211d
resets state updater to apply light settings ( #3141 )
...
resets state updater to apply light settings
With this PR we achieve the same effect with fewer lines of code.
2021-10-06 11:21:30 +02:00
Bo Svensson
442a0e8434
avoids two transforms in sky.cpp ( #3150 )
...
As we discovered in #3148 , `Transform` nodes and their low level equivalence `pushModelViewMatrix` are somewhat costly involving a `Matrix::invert` operation per frame.
With this PR we avoid one `Transform` node for sun flashes and avoid another `pushModelViewMatrix` call in case the sun is fully visible.
2021-10-05 16:00:30 +02:00
Bo Svensson
4b1c009ffd
use StateSet define for translucentFramebuffer ( #3138 )
...
With this PR we test out osg's shader define system for a somewhat harmless feature. As we can see, our code becomes more concise and efficient in this case. Most importantly, we no longer create unneeded vertex shader objects.
2021-10-05 14:37:08 +02:00
Bo Svensson
b2af81bc18
converts remaining osg::NodeCallback ( #3147 )
...
With this PR we convert remaining instantiations of the deprecated osg::NodeCallback in Open MW to SceneUtil::NodeCallback.
2021-10-05 14:21:12 +02:00
Bo Svensson
8e9851c97c
npcanimation.cpp ( #3148 )
2021-10-05 13:52:19 +02:00
Bo Svensson
aaf7b423d6
adds a replacement for osg::NodeCallback ( #3144 )
...
* nodecallback.hpp
* lightmanager.hpp
* lightmanager.cpp
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* [ci skip]
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* lightmanager.cpp
* lightmanager.cpp
* nodecallback.hpp
* [ci skip]
* [ci skip]
* controller.cpp
* [ci skip]
* osgacontroller.cpp
* keyframe.hpp
* controller.hpp
* keyframe.hpp
* [ci skip]
* keyframe.hpp
* animation.hpp
* [ci skip]
* weaponanimation.cpp
* nodecallback.hpp
2021-10-04 10:56:55 +02:00
psi29a
2c8c36fe5d
Merge branch 'master' into 'effective_magic'
...
# Conflicts:
# CHANGELOG.md
2021-10-01 21:20:08 +00:00
Bo Svensson
2568f119a4
reapplies PR without npe ( #3137 )
...
* avoids creating empty statesets on drawables
Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.
* renderingmanager.cpp
* nifloader.cpp
* nifloader.cpp
* shadervisitor.cpp
2021-10-01 10:11:00 +02:00
Evil Eye
dc1fe62dde
Overhaul magic effects to work with onApply and onEnd events
2021-09-29 19:25:10 +02:00
Andrei Kortunov
e109d86489
Revert "avoids creating empty statesets on drawables ( #3132 )"
...
This reverts commit 957c25a491
.
2021-09-29 21:01:22 +04:00
Bo Svensson
d8707a763f
fixes build ( #3134 )
...
* quadtreeworld.cpp
* renderingmanager.cpp [ci skip]
* quadtreeworld.hpp
* cellborder.hpp
* cellborder.cpp
2021-09-29 17:10:58 +02:00
Bret Curtis
803195a05f
add back some explicit includes
2021-09-29 16:29:10 +02:00
Bo Svensson
8358418555
set the correct program link parameters ( #3110 )
...
* shadermanager.hpp setProgramTemplate
* shadermanager.hpp
* shadermanager.cpp setProgramTemplate
* shadervisitor.hpp setProgramTemplate
* shadervisitor.cpp setProgramTemplate
* scenemanager.cpp setProgramTemplate
* scenemanager.hpp setProgramTemplate
* renderingmanager.cpp
* groundcover.cpp setProgramTemplate
* groundcover.hpp
* groundcover.cpp
* shadervisitor.cpp
* util.cpp
* lightmanager.cpp
* scenemanager.cpp
* scenemanager.hpp
* lightmanager.cpp
* lightmanager.cpp
* lightmanager.cpp
* scenemanager.hpp [ci skip]
* water.cpp
* groundcover.cpp
* shadermanager.hpp
2021-09-29 15:40:37 +02:00
Andrei Kortunov
1109cc3ac7
Remove unused data field ( #3133 )
2021-09-29 12:08:51 +02:00
Bo Svensson
957c25a491
avoids creating empty statesets on drawables ( #3132 )
...
* avoids creating empty statesets on drawables
Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.
* renderingmanager.cpp
* nifloader.cpp
2021-09-29 09:58:19 +02:00
Andrei Kortunov
fc2076db1a
Fix MSVC warnings about local variables redeclaration ( #3130 )
2021-09-29 09:36:05 +02:00
Bo Svensson
5fde6867a2
removes unused code ( #3129 )
...
* scenemanager.cpp
* scenemanager.hpp
* scenemanager.cpp
* stats.cpp
* renderingmanager.cpp
2021-09-28 09:07:49 +02:00
Petr Mikheev
e760a6c7e6
Merge branch 'forlua' into 'master'
...
Simple Physics API modification for Lua
See merge request OpenMW/openmw!1216
(cherry picked from commit d88494c90b501d0832ae0330a0ca81d8b8e5aa50)
02dd055a Save hitObject in castSphere() just like in castRay()
0793d0bf Allow to override collision mask and group for castSphere() as for castRay()
2021-09-27 19:50:57 +00:00
Bo Svensson
c6f7137ee1
fixes bugs with share state ( #3111 )
...
* optimizer.cpp merge fix
* objectpaging.cpp
* optimizer.hpp setSharedStateManager
* optimizer.cpp shareState
* scenemanager.cpp shareState
* scenemanager.cpp
* optimizer.cpp
* optimizer.cpp
* scenemanager.cpp
* optimizer.cpp
2021-09-27 20:41:24 +02:00
Bo Svensson
b22fb7a7bf
consolidate node mask checks ( #3125 )
...
* consolidate node mask checks
This PR simplifies a few checks against node masks in object paging by using the osg provided `setTraversalMask`.
* objectpaging.cpp
2021-09-21 22:39:31 +02:00
Bo Svensson
99df1c695c
fixes wireframe is broken ( #3123 )
...
* renderingmanager.cpp [ci skip]
* groundcover.hpp [ci skip]
* groundcover.cpp
* renderingmanager.cpp [ci skip]
* renderingmanager.hpp
2021-09-20 20:17:55 +02:00
psi29a
68db9869f5
Merge branch 'DistantTerrainDebugChunks' into 'master'
...
Debug terrain chunks
See merge request OpenMW/openmw!1169
2021-09-18 15:21:26 +00:00
Cédric Mocquillon
6817282097
Move getFileExtension to common header and use instead of repeating same code
2021-09-14 18:09:55 +02:00
Cédric Mocquillon
c2df0949e2
Change normalizeFilename signature
2021-09-14 18:09:55 +02:00
Cédric Mocquillon
d4e26746a3
Use recurse subdirectory iterator to iterate over the VFS without exposing internal details
2021-09-14 18:09:54 +02:00
Bo Svensson
b6f572578e
Groundcover optimisation ( #3101 )
...
* groundcover.cpp share state
* groundcover.hpp share state
2021-09-13 12:20:00 +02:00
psi29a
c40f921396
Revert "actoranimation.cpp faster getbonebyname ( #3099 )"
...
This reverts commit c284d0cf5c
2021-09-12 07:56:20 +00:00
Cédric Mocquillon
080c909c28
Merge the 'debug chunks' and 'object paging debug batches' settings into a single one
2021-09-11 21:53:05 +02:00
Bo Svensson
ac72f3d636
reduces virtual function calls in a hotspot of cache retrieval ( #3100 )
...
* chunkmanager.cpp static_cast [ci skip]
* groundcover.cpp static_cast [ci skip]
* Update objectpaging.cpp
objectpaging.cpp static_cast [ci skip]
2021-09-10 17:58:57 +02:00
Bret Curtis
1edeffbafc
constify getBoneByName
2021-09-09 23:57:20 +02:00
Bo Svensson
9d661359a1
Groundcover consolidation ( #3096 )
...
* chunkmanager.hpp viewdistance
* chunkmanager.cpp viewdistance
* chunkmanager.hpp viewdistance
* quadtreeworld.cpp viewdistance
* quadtreeworld.cpp consolidate
* quadtreeworld.hpp consolidate
* renderingmanager.cpp groundcover consolidate
* renderingmanager.hpp groundcover consolidate
* renderingmanager.cpp updater move
* renderingmanager.hpp updater move
* groundcover.hpp activegrid consolidation
* groundcover.cpp activegrid consolidation
* settings-default.cfg dead settings remove
* viewdata.cpp revert
* wrong file paste mistake
* wrong file paste mistake
* wrong file paste mistake
* renderingmanager.cpp updatecallback fix
* renderingmanager.cpp namespace fix
* groundcover.hpp redefinition fix
* groundcover.cpp redefinition fix
* renderingmanager.cpp crash fix
* renderingmanager.cpp euclidean groundcover distance
* viewdata.hpp getreusedistance
* quadtreeworld.cpp reusedistance
* groundcover.rst [ci skip]
2021-09-09 23:10:22 +02:00
Bo Svensson
c284d0cf5c
actoranimation.cpp faster getbonebyname ( #3099 )
2021-09-09 23:04:38 +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
JanuarySnow
bdbc6c0cba
Dead animation code removal
2021-09-08 10:07:54 +00:00
elsid
0daf6f5d0b
Merge branch 'comma' into 'master'
...
Don't use comma where there is no need to.
See merge request OpenMW/openmw!1179
2021-08-31 12:33:15 +00:00
jvoisin
a15cca5763
Use reserve
on vectors for fixed loops
...
This is a bit useless, but has the merit of appeasing clang-tiday
2021-08-29 20:18:49 +02:00
jvoisin
a6b1e38eab
Don't use comma where there is no need to.
2021-08-29 14:12:14 +02:00
psi29a
b585aad81e
Merge branch 'offset-bullet-debug' into 'master'
...
glPolygonOffset for Bullet debug geometry
See merge request OpenMW/openmw!684
2021-08-25 07:26:21 +00:00
elsid
193be0d5d1
Merge branch 'some_small_changes' into 'master'
...
Fix coverity warning and build on some osg
See merge request OpenMW/openmw!1153
2021-08-19 23:40:14 +00:00
glassmancody.info
a6c7fcd436
don't pingpong depth function on character preview update
2021-08-18 15:46:25 -07:00
glassmancody.info
d63eb3325f
fix coverity warning and build on some osg
2021-08-17 17:45:50 -07:00
psi29a
faa3e04494
Merge branch 'const_reff' into 'master'
...
Sprinkle some const-ref
See merge request OpenMW/openmw!1145
2021-08-17 08:20:13 +00:00
Alexei Dobrohotov
6c1ac9ed9f
Merge branch 'init_sky' into 'master'
...
Use an initialization list in WrapAroundOperator's constructor
See merge request OpenMW/openmw!1146
2021-08-16 01:19:28 +00:00
jvoisin
ff2a51a484
Use an initialization list in WrapAroundOperator's constructor
2021-08-15 19:57:20 +02:00
jvoisin
7a015d24c6
Sprinkle some const-ref
2021-08-15 19:50:28 +02:00
glassmancody.info
ed72f3335b
silence compiler warning
2021-08-15 08:02:00 -07:00
AnyOldName3
7400050b38
Merge branch 'character_preview_alpha_fix' into 'master'
...
Fix transparent objects being invisible in character doll
See merge request OpenMW/openmw!1140
2021-08-15 00:01:23 +00:00
glassmancody.info
6cc71745ac
ensure character preview is using standard depth
2021-08-14 14:50:33 -07:00
Mads Buvik Sandvei
d40c18234a
Double buffering the water's node position uniform
2021-08-14 17:41:58 +00:00
elsid
3caf45807f
Use common implementation to filter hidden markers
2021-08-12 22:35:16 +02:00