1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 16:49:55 +00:00
Commit graph

165 commits

Author SHA1 Message Date
scrawl
afe533e670 Accept a const Object in UnrefQueue 2016-02-09 19:00:30 +01:00
scrawl
40a6e05e17 Use a deque instead of vector in UnrefQueue 2016-02-09 16:09:55 +01:00
scrawl
d11c2864df Introduce UnrefQueue to handle the deleting of no longer needed objects in the background thread 2016-02-09 15:45:35 +01:00
scrawl
84f01b7527 Remove unneeded forward declaration 2016-02-08 16:27:28 +01:00
scrawl
b7e69cbc64 Refactor WorkQueue, merge WorkTicket and WorkItem
Allow the caller to hold on to the WorkItem. This makes it possible for a derived WorkItem to store the result of the work within the WorkItem itself.
2016-02-06 22:42:45 +01:00
scrawl
e02f35264f Work around OSG 3.2 not respecting the DEEP_COPY_CALLBACK flag (Fixes #3183) 2016-02-06 15:08:12 +01:00
scrawl
8360cccce7 Don't clone Drawable UpdateCallbacks twice
The Drawable copy constructor takes care of that already.
2016-02-01 21:02:48 +01:00
scrawl
aec8c38461 Move observer_ptr include where it belongs 2016-01-25 21:03:33 +01:00
Tobias Kortkamp
0659687bfb Some fixes for building on FreeBSD 2016-01-25 14:13:16 +01:00
scrawl
458a305bff OpenCS: add lighting mask 2016-01-11 23:14:43 +01:00
scrawl
e1c7165bfb Fix bounds calculation for addLight to a transform node 2016-01-11 23:14:43 +01:00
scrawl
93cc08a09c Lighting fix for LightListCallbacks attached to a Transform node 2016-01-11 23:10:16 +01:00
scrawl
3089aeccc4 Factor out SceneUtil::addLight 2016-01-11 23:10:16 +01:00
scrawl
438b30d6f0 Move configureLight to a separate file 2016-01-11 23:10:16 +01:00
scrawl
daa94cc50e Fix cppcheck warnings 2016-01-03 20:19:38 +01:00
scrawl
0597c8fd9c Pass a Vec4f by reference 2016-01-03 16:43:20 +01:00
scrawl
624809c8dc Minor fix for error handling in skeleton.cpp 2015-12-08 16:50:54 +01:00
scrawl
e39f49a88f OSG extensions namespace fixes 2015-12-06 15:27:43 +01:00
scrawl
c60f4ba7bd Make RigGeometry bone references case-insensitive (Fixes #3058) 2015-12-05 15:02:35 +01:00
scrawl
258f7a2b42 LightController fixes 2015-12-05 00:38:06 +01:00
scrawl
4a9b37aa53 Fix copy constructor issue 2015-12-04 18:08:32 +01:00
scrawl
c442af09c5 Write more documentation for the lighting system 2015-12-04 18:08:32 +01:00
scrawl
8e9571d155 Double buffer the light StateAttributes and StateSets
Fixes a race condition where the position of a light could jump a frame ahead.
2015-12-04 00:06:22 +01:00
scrawl
1f8ee9b8d1 StateSetUpdater: use the frameNumber
More robust in case a node is updated twice in the same frame (e.g. because it has multiple parents).
2015-12-03 23:46:25 +01:00
scrawl
eb458bf9c8 Fix inactive RigGeometry not rendering correctly 2015-12-03 19:49:45 +01:00
scrawl
1b77428c59 Use const reference, thanks ace13 2015-11-24 03:42:35 +01:00
scrawl
94e8560bf8 RigGeometry: do not allocate new NodePath every frame 2015-11-22 20:01:09 +01:00
scrawl
6d5aa272fc RigGeometry: do not update the geomToSkelMatrix more than once per frame 2015-11-22 19:54:27 +01:00
scrawl
75a464f7ec Fix a typo 2015-11-22 19:54:27 +01:00
scrawl
fc7456e0a1 Explicitely opt for float matrices in performance critical places 2015-11-22 19:54:27 +01:00
scrawl
62169a7039 Use a single-precision PositionAttitudeTransform in speed critical places 2015-11-22 19:54:26 +01:00
scrawl
3bd2aaddea Adjust PulseSlow light controller (Fixes #1963) 2015-11-18 23:14:01 +01:00
scrawl
21e25f4756 Use the traversalNumber as frame number 2015-11-16 20:03:45 +01:00
scrawl
054c3eb24e Do not deep copy PrimitiveSets when build with OSG 3.5 2015-11-13 20:39:44 +01:00
scrawl
0409e5a043 Use OSG_VERSION_GREATER_EQUAL / LESS_THAN rather than MIN_VERSION_REQUIRED (cosmetic change) 2015-11-10 18:28:58 +01:00
scrawl
f1ac408f35 Place Drawables directly in the scene graph when built with OSG 3.4
OSG 3.4 adds the ability to place Drawables directly in the scene graph, without a Geode decorating them. Leveraging this should give a small performance boost, because the redundant Geodes increase culling overhead.

There is still an oustanding issue with the RemoveDrawableVisitor no longer working correctly, because Drawables can have multiple parents.
2015-11-10 18:23:42 +01:00
scrawl
35459f20d5 Refactor lighting mask 2015-11-10 17:23:12 +01:00
scrawl
bd8332d2b0 Remove default copyop argument for nodecallback copy constructors
Works around a compiler warning with OSG 3.4:

warning: base class 'class osg::Callback' should be explicitly initialized in the copy constructor [-Wextra]

With no default argument for osg::CopyOp&, the compiler no longer sees the function as a real copy constructor and stops warning about the missing virtual initializations.

We don't care about this warning because there is nothing interesting to initialize in the osg::NodeCallback base anyway.

A proper fix for the warning would require to inserting OSG_VERSION conditional compiling all over the place, that is as long as we are still supporting OSG 3.2.
2015-11-09 18:57:17 +01:00
scrawl
1200ff9186 RigGeometry: fix incorrect bounding box in the first frame
The default computeBound() was overriding the manually set bounding box.
2015-11-09 18:31:41 +01:00
scrawl
0210b87ffc Revert "Fix LightSource crash"
This reverts commit f336c6db87.

Root cause should be fixed in next commit.
2015-11-06 23:14:27 +01:00
scrawl
c996702b56 Fix some uninitialised variables found by static analysis 2015-11-04 20:34:50 +01:00
scrawl
c23609e22b Cache the light list in LightListCallback
When multiple cameras are rendering, the later cameras can reuse the light lists from the first camera.
2015-11-04 00:19:15 +01:00
scrawl
fd1ccd21ff Disable freezeOnCull for weather particles 2015-11-02 23:49:22 +01:00
scrawl
5ca0ae5232 Don't add the same AlphaFader to multiple nodes 2015-11-02 23:38:34 +01:00
scrawl
f336c6db87 Fix LightSource crash 2015-10-29 00:51:35 +01:00
scrawl
49df6b7450 LightManager: fix incorrect view matrix for RELATIVE_RF cameras 2015-10-23 21:25:56 +02:00
scrawl
6dff11f847 Duplicate code fix 2015-10-23 18:16:26 +02:00
scrawl
8552a9d82c Add multiple camera support to LightManager 2015-10-23 01:58:22 +02:00
scrawl
8e69c80bf6 Add framenumber checks in various cull callbacks, so we don't update more than once per frame when multiple cameras are used 2015-09-26 01:21:33 +02:00
scrawl
f7e5a40143 Fix typo 2015-09-21 17:58:57 +02:00
scrawl
e9acd135a6 Update todo comment 2015-08-30 20:43:39 +02:00
scrawl
cda8a88f0d Use DEEP_COPY_PRIMITIVES to work around problem in osg::Geometry copy constructor (Bug #2754) 2015-08-30 20:00:37 +02:00
scrawl
b3f5ac5dbb Include cleanup 2015-07-25 02:11:49 +02:00
scrawl
49c07de773 Merge pull request #643 from ace13/win-build-fix
Fix build error and a pair of warnings
2015-07-05 22:24:24 +02:00
Alexander "Ace" Olofsson
aaaee74a4d Fix the comments 2015-07-05 21:56:04 +02:00
scrawl
631cec7304 Take the radius of lights into account when sorting 2015-07-02 20:46:34 +02:00
scrawl
43f9c7f295 Skip the Update traversal for inactive skeletons 2015-06-30 03:25:30 +02:00
scrawl
aad8e7b6d0 Light culling fix 2015-06-15 19:37:44 +02:00
scrawl
18f4eaa8dc Preliminary handling for overflowing light lists 2015-06-15 18:56:40 +02:00
scrawl
acf9fc2d37 Enable per-frame light list updates (Bug #2638, Bug #2654)
The performance impact isn't so big anymore since the last commit.
2015-06-15 18:15:26 +02:00
scrawl
1d198a5592 Keep the light list StateSet cache for more than one frame 2015-06-15 18:09:01 +02:00
scrawl
b204396b57 Minor fix 2015-06-14 21:04:59 +02:00
scrawl
a1e74a35a2 Revert "Use the WorkQueue to update skinning"
This reverts commit d52d0d9640.

Moving to branch
2015-06-10 19:08:56 +02:00
scrawl
9c86d4f8bc Race condition fix 2015-06-10 19:02:33 +02:00
scrawl
d52d0d9640 Use the WorkQueue to update skinning 2015-06-10 18:16:02 +02:00
scrawl
cc71e894e1 Add WorkQueue class 2015-06-10 18:15:31 +02:00
scrawl
9c9b83f8e2 Changes to compile with osg-svn 3.3.8 2015-06-07 23:51:54 +02:00
scrawl
5a7f2a4f1f Restore light attenuation settings 2015-06-02 17:02:56 +02:00
scrawl
01944c33f5 Basic water rendering 2015-06-02 16:35:35 +02:00
scrawl
c85764b654 Wireframe mode 2015-06-01 17:02:44 +02:00
scrawl
fd50be0fb8 Restore various gameplay 2015-05-30 01:00:24 +02:00
scrawl
6231cd8557 RigGeometry clone fix 2015-05-30 00:59:34 +02:00
scrawl
a56d0e9cc3 ControllerVisitor fix 2015-05-29 23:39:52 +02:00
scrawl
668d365ef9 MorphGeometry copy fix 2015-05-29 21:47:43 +02:00
scrawl
5de24552a8 Leak fix 2015-05-26 19:12:29 +02:00
scrawl
3dcb167066 Map rendering 2015-05-26 16:40:44 +02:00
scrawl
da24e298ee Fix -Wreorder warnings 2015-05-23 22:44:00 +02:00
scrawl
7882c3d7f0 Fix incorrect rotation for meshes with BoneOffset 2015-05-20 04:09:21 +02:00
scrawl
8d033f0558 Fix UpdateRigBounds not being copied properly 2015-05-20 03:12:42 +02:00
scrawl
8b768f4377 Minor fix for behaviour with non-existing LightManager 2015-05-18 21:06:42 +02:00
scrawl
b6cb73e6e8 Fix deep copying of controllers
This fixes the cell loading crash.
2015-05-14 15:07:58 +02:00
scrawl
65f0195c71 Readded animated collision shape support 2015-05-12 16:26:11 +02:00
scrawl
15bdb7db01 transformBoundingSphere optimization 2015-05-01 01:44:21 +02:00
scrawl
a98dc78cc5 Bounds fix 2015-04-30 15:46:16 +02:00
scrawl
83c6ba97c0 Disable skinning updates for actors beyond the AI processing distance 2015-04-30 00:10:24 +02:00
scrawl
63b69db617 Port skeleton based bounding boxes to the new skinning system
Not sure if going to keep this, there's a noticable performance impact.
2015-04-27 15:41:34 +02:00
scrawl
b4a06bd78d Improve skinning performance 2015-04-25 19:32:07 +02:00
scrawl
09742d5b95 Animation playback works, no movement accumulation yet 2015-04-23 20:41:31 +02:00
scrawl
12f3198f68 Node name lookups should be case insensitive
Concerns "AttachLight", "BoneOffset" and equipment part attachment points, that are all case insensitive in vanilla MW.
2015-04-23 17:15:30 +02:00
scrawl
cd7808fc11 Cleanup in preparation for animation port
Scrapped previous idea for multiple animation sources, better approach incoming.
2015-04-22 23:16:08 +02:00
scrawl
8c810e3620 Move rng to components 2015-04-22 17:58:55 +02:00
scrawl
04accb7652 Add LightController 2015-04-22 17:37:39 +02:00
scrawl
5fbcf8a859 Mesh filtering fix 2015-04-22 16:59:23 +02:00
scrawl
a254877abe Clone fix 2015-04-21 22:53:28 +02:00
scrawl
28643660d3 Change triangle indices to unsigned 2015-04-21 20:56:16 +02:00
scrawl
102eadf91c Add some comments 2015-04-21 20:42:50 +02:00
scrawl
eaa4316ff8 Move skinning code to SceneUtil 2015-04-21 20:30:48 +02:00
scrawl
bd88758962 Use the new skinning system in OpenMW 2015-04-21 18:54:03 +02:00
scrawl
68f93294da Port EffectManager 2015-04-19 17:55:56 +02:00
scrawl
f7d2a28930 Port BoneOffset 2015-04-19 14:25:36 +02:00