Bo Svensson
14d15dcfac
cleans up osgacontroller.cpp ( #3142 )
...
`handle_stateset` is not needed because `UpdateMatrixTransform` is a `NodeCallback` only allowed to be set on a `Node`. `Geode` and `Drawable` do not need explicit logic because they are both derived from `Node`.
2021-10-04 12:20:33 +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
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
fc2076db1a
Fix MSVC warnings about local variables redeclaration ( #3130 )
2021-09-29 09:36:05 +02: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
Bret Curtis
8d86d90782
remove whitespace
2021-09-18 22:00:26 +02:00
Bo Svensson
179f91276a
lightmanager.cpp ( #3121 )
2021-09-18 18:21:11 +02:00
Bo Svensson
52a9b4d989
shadowsbin.cpp uniform
2021-09-12 09:21:10 +00:00
psi29a
01a8998e3b
return if source is null in mergeUserData
2021-09-10 14:04:11 +00:00
Bo Svensson
afba1884ab
clone.cpp remove dynamic_cast ( #3097 )
2021-09-09 23:04:11 +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
psi29a
ac3fda0b3d
Merge branch 'string_view' into 'master'
...
Pass std::string_view instead of const std::string&
See merge request OpenMW/openmw!1209
2021-09-09 20:41:16 +00:00
elsid
6b7434ca69
Pass std::string_view instead of const std::string&
...
* Starting with Actor::getBodyPartMesh and ending with
Misc::StringUtils::ciEqual.
* Add tests for Misc::StringUtils::ciEqual.
2021-09-09 18:39:50 +02:00
Bo Svensson
d36c373cc7
visitor.cpp early out
2021-09-08 17:23:35 +00:00
glassmancody.info
d63eb3325f
fix coverity warning and build on some osg
2021-08-17 17:45:50 -07:00
jvoisin
5793f5cf18
Sprinkle a couple of std::move and a const
2021-08-16 13:11:22 +02:00
Alexei Dobrohotov
b49f51cbfc
Serialize NifOsg::MatrixTransform children properly
2021-08-12 18:33:06 +03:00
psi29a
8ad3d3d792
Merge branch 'freezeandcool' into 'master'
...
Don't use FreezeOnCull for any particle system (#4744 )
Closes #4744
See merge request OpenMW/openmw!1103
2021-08-08 12:35:26 +00:00
Alexei Dobrohotov
1fc7cb8191
Don't use FreezeOnCull for any particle system ( #4744 )
2021-08-08 03:36:35 +03:00
elsid
fa1fb2a6b5
Reset mIsReleased before starting threads
...
To fix TSAN warning:
WARNING: ThreadSanitizer: data race (pid=68597)
Write of size 1 at 0x7b3800079234 by main thread:
#0 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:51 (openmw+0x10daa10)
#1 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
#2 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
#3 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#4 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#5 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 (openmw+0x125df1c)
#6 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
Previous read of size 1 at 0x7b3800079234 by thread T10 (mutexes: write M19275778865205896):
#0 SceneUtil::WorkQueue::removeWorkItem() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:86 (openmw+0x10d9e51)
#1 SceneUtil::WorkThread::run() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:127 (openmw+0x10da52a)
#2 operator() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:114 (openmw+0x10da664)
#3 __invoke_impl<void, SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61 (openmw+0x10da664)
#4 __invoke<SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96 (openmw+0x10da664)
#5 _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253 (openmw+0x10da664)
#6 operator() /usr/include/c++/11.1.0/bits/std_thread.h:260 (openmw+0x10da664)
#7 _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211 (openmw+0x10da664)
#8 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82 (libstdc++.so.6+0xd33c3)
Location is heap block of size 216 at 0x7b3800079220 allocated by main thread:
#0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x91824)
#1 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb4c)
#2 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#3 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#4 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 (openmw+0x125df1c)
#5 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
Mutex M19275778865205896 is already destroyed.
Thread T10 (tid=68609, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x61c3a)
#1 std:🧵 :_M_start_thread(std::unique_ptr<std:🧵 :_State, std::default_delete<std:🧵 :_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xd36aa)
#2 std::_MakeUniq<SceneUtil::WorkThread>::__single_object std::make_unique<SceneUtil::WorkThread, SceneUtil::WorkQueue&>(SceneUtil::WorkQueue&) /usr/include/c++/11.1.0/bits/unique_ptr.h:962 (openmw+0x10da987)
#3 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:50 (openmw+0x10da987)
#4 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
#5 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
#6 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#7 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#8 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 (openmw+0x125df1c)
#9 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
2021-08-08 02:28:59 +02:00
glassmancody.info
cdf5b315c3
fix mac runner undefined macro
2021-08-05 16:52:40 -07:00
glassmancody.info
09e03fde2e
refactor and fix wobbly shores
2021-08-04 17:49:57 -07:00
glassmancody.info
cad0b151cb
enable shaders path and dehardcode depth formats
2021-08-04 17:39:11 -07:00
glassmancody.info
b457dfd8b8
fix water RTTs and minor math error in non-infinite projection matrix
2021-08-04 17:39:11 -07:00
glassmancody.info
70fac33940
initial reverse-z depth implementation
2021-08-04 17:39:11 -07:00
glassmancody.info
1e52ca2b64
properly initialize light settings
2021-08-01 23:46:45 -07:00
psi29a
8c36eb56cf
Merge branch 'stereo_friendly_water' into 'master'
...
Stereo friendly water and statesetupdater
See merge request OpenMW/openmw!563
2021-07-30 11:00:49 +00:00
madsbuvi
41c08b1c3b
Stereo friendly StateSetUpdater
...
(cherry picked from commit 496b3aef88b8fd867dcdd23a6ca43144573b1b2f)
Stereo friendly water
(cherry picked from commit 0e22c55e48a7f965367d3d430c1bef5357b22748)
Option to disable per view mapping.
Include memory header
De-hardcode settings and buffers.
formatting error
Update water.cpp (whitespace)
Update water.cpp (more whitespace)
include render order
c array -> c++ array
2021-07-26 14:01:02 +02:00
elsid
9a5ec5fd03
Store heightfields as array of heights instead of triangles
...
To reduce size of RecastMesh and therefore cache size.
2021-07-26 00:22:21 +02:00
elsid
d60edb36aa
Make RecastMesh independent from recast scale factor
...
To avoid scaling until it's required by delaying coordinates conversion until
navmesh generation.
2021-07-26 00:22:20 +02:00
elsid
af7059373c
Make RecastMesh independent from the order of RecastMeshBuilder calls
...
To make sure RecastMesh objects are equal if built with the same data but in
different order. Will be used later when there will be more than one place
building RecasMesh objects.
2021-07-26 00:22:20 +02:00
elsid
d4a2dab9d9
Remove redundant else
2021-07-12 11:41:21 +02:00
elsid
eece47f70e
Avoid copying osg::ref_ptr when adding or removing item from work queue
...
Copy constructor does refcounting, and move constructor doesn't.
2021-07-12 11:41:21 +02:00
elsid
b8fcd6d3ba
Manage work item lifetime on the client side
...
Instead of explicit work queue stop before any possibly used engine manager
is destructed. Based on an assumption that any engine manager can be destructed
independently from the work queue destruction. This model is already used in
CellPreloader that conflicts with explicit work queue stop.
After the work queue is requested to be stopped, any client waiting for a not
started work item to be done will wait forever because the work item is dropped
from the queue. Therefore either clients should not wait for own work items to
be completed in destructor or the work queue should not drop items before
clients are destructed. Other approaches are possible but are not considered
due to increasing complexity.
CellPreloader already tries to wait for all created work items to be done so
keep it that way and extend the model to AsyncScreenCaptureOperation and Scene.
Additionally abort all scheduled work items when owner is destructed. This
prevents a long exit when multiple screenshots are scheduled right before
exiting the game.
2021-07-12 11:41:14 +02:00
elsid
5103120eef
Notify about saved screenshot
...
Show message about saved screenshot via schedule message box. Since screenshot
saving happens not in the main thread calling messageBox directly is unsafe.
WindowManager::scheduleMessageBox delays message box showing until next update
in the main thread.
2021-07-08 21:14:01 +02:00
elsid
f7a6be053d
Stop engine work queue before destructing environment
...
To avoid access to null and dangling pointers from active work items on
quitting.
2021-07-08 21:14:01 +02:00
elsid
f8e02000ec
Write screenshots to file asynchronously
2021-07-08 21:13:57 +02:00
elsid
33aa4d0822
Move WriteScreenshotToFileOperation to components
2021-07-08 20:27:19 +02:00
AnyOldName3
84a9facedf
Disable coverage adjustment for blended objects
2021-07-04 23:29:22 +01:00
Evil Eye
2be27da791
Merge branch 'const_refs' into 'master'
...
Add a ton of const refs
See merge request OpenMW/openmw!954
2021-06-24 18:57:41 +00:00
Evil Eye
9f7980ecd7
Merge branch 'refenreces' into 'master'
...
Sprinkle some references where it makes sense
See merge request OpenMW/openmw!952
2021-06-24 17:40:36 +00:00
jvoisin
cf11870b1c
Sprinkle some references where it makes sense
2021-06-24 00:28:09 +02:00
jvoisin
895864099c
Simplify NodeMapVisitor::apply
...
No need to run a find() before a std::replace
2021-06-23 23:29:14 +02:00
jvoisin
1123dc46ee
Add a ton of const refs
2021-06-23 23:13:59 +02:00
Bret Curtis
868a5b35e3
workaround shadow issue on macOS, https://gitlab.com/OpenMW/openmw/-/issues/6057
2021-06-12 00:10:55 +02:00
jvoisin
7f4f2c042e
Use sizeof(GLfloat) instead of sizeof(GL_FLOAT)
...
GL_FLOAT is an enum, with the value 0x1406, while GLFloat is the actual type.
Source: https://www.khronos.org/opengl/wiki/OpenGL_Type
2021-06-04 23:21:26 +02:00
elsid
d4f28ac979
Avoid resetting buffer object when configuring light buffer layout
...
Otherwise this casues RaceSelectionPreview to have no light until first change.
2021-05-28 10:46:42 +02:00
Andrei Kortunov
11c57978b6
Fix crashes on exit in the LightManager (bug #6044 )
2021-05-17 13:01:15 +04:00
Andrei Kortunov
c54ef55ebb
Revert "Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing"
...
This reverts commit 5373cf1cd5
.
2021-05-17 12:40:55 +04:00
elsid
d520b440aa
Copy LightBuffer data into a new object when changing layout
...
Before this change LightBuffer copy constructor copied only mData pointer into
a new object. Then memcpy was applied to an overlapping source and destination
that is UB.
Replace configureLayout function by a special constructor. That copies all
mData values and a pointer to a buffer object into a newly allocated object.
2021-05-16 22:37:31 +02:00
elsid
5373cf1cd5
Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing
...
When game exit is requests when initial loading screen is active LightManager
can be destructed in the main thread before LightManagerStateAttribute::apply
is completed by different thread. Given that it uses raw pointer at some point
it becomes dangling because object is destructed this leads to UB and eventual
SIGSEGV.
2021-05-15 15:23:28 +02:00
Andrei Kortunov
2e8873af51
Add new scene nodes to scene graph serializer blacklist
2021-05-07 19:27:23 +04:00
jvoisin
d45184a730
Sprinkle some const-ref to avoid unnecessary copies
2021-05-02 14:43:46 +02:00
Chris Djali
f0cef87cd8
Merge pull request #3069 from akortunov/msvc_warnings
...
Rework warnings settings
2021-05-01 19:03:43 +01:00
Andrei Kortunov
18a4c81b5c
Merge branch 'fix_toggleborders' into 'master'
...
Fix ToggleBorders debug view with 'Shaders' lighting method
See merge request OpenMW/openmw!792
2021-04-30 08:35:58 +00:00
AnyOldName3
ceb6a280ff
Fix typo
...
Hopefully this will actually let us make better use of shadow bounds,
but I wouldn't count on it.
2021-04-29 21:35:31 +00:00
glassmancody.info
9f314d1d6f
Fix ToggleBorders
2021-04-29 12:11:49 -07:00
Andrei Kortunov
6d351b2bdd
Fix MSVC 4706 warnings
2021-04-23 22:53:59 +04:00
Bret Curtis
50d6cd2a34
Merge pull request #3070 from akortunov/coverity
...
Fix an another portion of Coverity warnings
2021-04-20 07:33:03 +02:00
Bret Curtis
c6c92b5712
Merge pull request #3071 from akortunov/master
...
Fix an another batch of MSVC complaints
2021-04-20 07:31:56 +02:00
AnyOldName3
ff46eceabe
Merge branch 'maybe-reintroduce-5904' into 'master'
...
Fix crash on startup
See merge request OpenMW/openmw!709
2021-04-19 19:31:21 +00:00
Andrei Kortunov
d10399e083
Cast double constant to float explicitely
2021-04-19 17:08:03 +04:00
Andrei Kortunov
7d5c5f8a24
Do not assign negative values to unsigned variables
2021-04-19 16:08:19 +04:00
Andrei Kortunov
987b231fdd
Fix an another portion of Coverity warnings
2021-04-18 07:09:44 +04:00
psi29a
d0883f9a0d
Merge branch 'light_settings_tweak' into 'master'
...
Lighting patch
Closes #5957 and #5959
See merge request OpenMW/openmw!752
2021-04-16 19:47:26 +00:00
glassmancody.info
16856d45c5
Lighting Patch
...
Fixes build errors with older OSG builds and some issues with 'shared' layout.
Bring back ambient in inventory through lightmodel instead of sun ambient, mirrors scene ambient/sunlight relationship.
Forces shaders when certain lighting methods are enabled and finalize settings.
Correctly override sun for localmap.
2021-04-16 11:55:40 -07:00
Andrei Kortunov
0c7ddd3938
Remove redundant qualifiers
2021-04-14 09:02:20 +04:00
Andrei Kortunov
bce6effe95
Fix uninitialized variables in the LightManager
2021-04-14 08:20:23 +04:00
glassmancody.info
531a6e1979
Code review fixes, remove implicit GLSL casts
2021-04-13 11:09:54 -07:00
glassmancody.info
92033bca64
Fixed error in calculating viewspace sun dir, minor cleanup
2021-04-13 11:09:49 -07:00
glassmancody.info
9e80091aff
clear up force shaders and make it less convoluted
2021-04-13 11:09:49 -07:00
glassmancody.info
8ce65232ff
fix race condition with sun uniform
2021-04-13 11:09:49 -07:00
glassmancody.info
d4e7d25d14
Make life not suck for whoever wants to edit lighting shaders
2021-04-13 11:09:49 -07:00
glassmancody.info
eecb9886a9
Shader cleanup, fix indicies
2021-04-13 11:09:49 -07:00
glassmancody.info
4ba473b684
Finalize settings, torch fix
2021-04-13 11:09:49 -07:00
glassmancody.info
71c30a31df
in-game settings, some require restart
2021-04-13 11:09:49 -07:00
glassmancody.info
3d713e8602
Fix incorrect minimum ambient
2021-04-13 11:09:49 -07:00
glassmancody.info
280fd2b162
Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up
2021-04-13 11:09:35 -07:00
glassmancody.info
d195602a9d
Switch to shared layout, some rewording
2021-04-13 11:09:35 -07:00
glassmancody.info
690995988b
More formatting, OpenCS cells are unbroken
2021-04-13 11:09:35 -07:00
glassmancody.info
328ec85757
Code review cleanup, add setting documentation
2021-04-13 11:09:35 -07:00
glassmancody.info
05a5cee132
Brighter point lights and light fade
2021-04-13 11:09:35 -07:00
glassmancody.info
43ac32921c
Rewrite, support different lighting methods
2021-04-13 11:09:19 -07:00
glassmancody.info
9d9074c244
Add shared UBO
2021-04-13 11:07:48 -07:00
glassmancody.info
dda735c54a
initial commit
2021-04-13 11:06:16 -07:00
AnyOldName3
168f26fc80
Fix crash on startup
2021-04-04 15:29:08 +00:00
AnyOldName3
c6033b4de6
Fix #5904
2021-03-29 21:00:28 +00:00
AnyOldName3
0431ba4c87
Merge branch 'alpha-meddling-shader-side-mip-meddling' into alpha-meddling
2021-03-13 01:23:30 +00:00
AnyOldName3
46a1715d8a
Actually return something
2021-02-26 20:10:58 +00:00
AnyOldName3
f5a87ee46d
Refactor out duplicated RTT setup code
2021-02-26 19:01:27 +00:00
AnyOldName3
153ab57ae3
Make assignment in while loop condition obviously intentional
2021-02-24 17:45:44 +00:00
AnyOldName3
4f510d85ba
Merge remote-tracking branch 'upstream/master' into alpha-meddling
2021-02-14 22:42:55 +00:00
psi29a
c33b2e0100
Merge branch 'dehardcodebaseanim' into 'master'
...
Dehardcode Base_animation and improve Collada support
See merge request OpenMW/openmw!510
2021-02-10 16:29:47 +00:00
AnyOldName3
3e273a759a
Clarify method name now we're using it differently
2021-02-06 16:41:46 +00:00
Nelsson Huotari
bae27e8199
dynamic_cast to static_cast
2021-02-02 21:52:15 +02:00
Nelsson Huotari
b28d8251aa
Clone animation tracks
2021-02-02 21:52:08 +02:00
Nelsson Huotari
1221889cf7
Limit conversion of underscores to nodes origating from osgAnimation library
2021-02-02 21:41:17 +02:00
Nelsson Huotari
5b88d16a50
Clean-up
2021-02-02 21:09:50 +02:00
Nelsson Huotari
2162b97fef
Handle case in osgAnimation bone names
2021-02-02 17:34:02 +02:00
Nelsson Huotari
7d3f2bc113
Convert underscores in bone names to whitespaces
2021-02-02 17:33:40 +02:00