1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-16 18:59:57 +00:00
Commit graph

112 commits

Author SHA1 Message Date
AnyOldName3
a761e417f1 Accept that it's too much work to defer light manager creation in the CS and instead use something akin to the old approach 2024-02-24 16:59:11 +00:00
AnyOldName3
36a75cdb29 Get the GLExtensions instance when a context is created 2024-02-23 00:15:23 +00:00
Alexei Kotov
820fc068d1 Support point specular lighting (#6188)
Fix passing light specular colors with shader lighting methods (with help from wazabear)
2023-11-04 17:58:51 +03:00
elsid
08902371b4
Use settings values for Shaders settings 2023-10-12 20:43:53 +02:00
jvoisin
3cbf1dc042 First pass with include-what-you-use 2022-10-09 10:39:43 +00:00
elsid
063fff7fa4
Fix and prevent -Wextra-semi warning 2022-10-06 00:26:43 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Evil Eye
2222b47e3d Make Settings::Manager::getString return a reference 2022-08-28 16:38:11 +02:00
glassmancody.info
1f2d9f2280 don't recycle statesets for light cullcallback for now 2022-08-24 15:07:04 -07:00
psi29a
b551e69b6f #5534 remove OSG 3.4 support and require at least 3.6.5 support 2022-08-09 21:07:28 +00:00
psi29a
bb9884c024 Merge branch 'split_stringops' into 'master'
Split components/misc/stringops.hpp into multiple headers

See merge request OpenMW/openmw!2233
2022-08-09 18:06:40 +00:00
glassmancody.info
c513ec7824 null check 2022-08-08 12:53:20 -07:00
glassmancody.info
2cea4f3172 stop excessive allocations with lightmanager callback 2022-08-07 17:04:03 -07: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
elsid
9ac3bb753e
Move declaration private static member variables of LightManager to .cpp
There is no need to expose them to other translation units.
2022-07-08 17:21:01 +02:00
elsid
4211cf1c24
Use uniform indent and apply openmw naming policy 2022-07-08 17:14:13 +02:00
glassmancody.info
8146b05c92 pass only lights with visible geometry 2022-06-04 21:01:01 -07:00
glassmancody.info
327b8ecdcb pass sorted lights to light postprocess light buffers 2022-06-04 20:33:21 -07:00
cody glassman
30a64ee82a move to world space, fix bug with uniform size updates 2022-05-24 22:30:25 -07:00
cody glassman
0cb63ca4e6 experimental point light bindings 2022-05-15 10:03:58 -07:00
Alexei Dobrohotov
142b6fdf2f Fix double precision bound issues in std::max/std::clamp 2022-02-02 16:57:59 +03:00
glassmancody.info
750514cda2 simply lightmanager and fix racey behavior 2021-11-18 19:40:13 -08:00
Bo Svensson
1960e976e2
refactors stringops.hpp (#3192)
With this PR we refactor `StringUtils::replaceAll` to accept `string_view` as suggested in a code comment. In addition, while we are touching this rebuild happy file, we slim it down a bit by moving a few sparingly used functions elsewhere.
2021-11-05 10:53:52 +01:00
Bo Svensson
1979ee1491
refactors hashed std::map (#3199)
We currently apply a strange algorithm to `LightManager::mStateSetCache`. For some reason this algorithm inserts hashed keys into `std::map` in a way that fails to handle hash collisions and exhibits worse lookup complexity than `std::unordered_map`. With this PR we just use `std::unordered_map` here.
2021-11-04 16:54:47 +01:00
Bo Svensson
cd4d76f8c5
discard off-screen lights (#3120)
Currently, we run culling tests against all lights in the scene during LightListCallback::pushLightState. We can avoid most of these tests by removing off-screen lights at an earlier stage. We should benchmark the cumulative time spent within LightListCallback::pushLightState before and after this PR.
2021-10-06 11:53:24 +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
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
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
glassmancody.info
1e52ca2b64 properly initialize light settings 2021-08-01 23:46:45 -07: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
glassmancody.info
9f314d1d6f Fix ToggleBorders 2021-04-29 12:11:49 -07: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
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