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

3174 commits

Author SHA1 Message Date
scrawl
80a0398f9d Load LandData into the LandObject to avoid threading conflicts when the same data is being loaded by two threads 2017-03-14 19:27:55 +01:00
scrawl
20d30bb8d7 Move mDataLoaded into LandData 2017-03-14 19:27:55 +01:00
scrawl
16b5cadd9e Fix order of operations w.r.t clearing cache 2017-03-14 19:27:55 +01:00
scrawl
2c68ed4fb4 Remove no longer required use of UnrefQueue as the new resource manager will naturally clear the cache from the worker thread 2017-03-14 19:27:55 +01:00
scrawl
35d53acc65 Factor out terrain chunk loading/caching into a new resource manager 2017-03-14 19:27:55 +01:00
scrawl
274690f790 Refactor BufferCache to allow caching buffers of different sizes 2017-03-14 19:27:55 +01:00
scrawl
9a3a64f0c4 Add resource manager for ESM::Land to allow data to be unloaded when no longer required 2017-03-14 19:27:55 +01:00
scrawl
804f873649 terrain: factor out texture caching into a separate class 2017-03-14 19:27:55 +01:00
scrawl
4cd4457d21 Add support for Functors to ObjectCache 2017-03-14 19:27:55 +01:00
scrawl
9d72d9f0c9 Change order of operations in SceneManager::updateCache to allow deleting of StateSets that just got unreferenced by the scene 2017-03-14 19:27:55 +01:00
scrawl
eef63a880a terrain: use a custom drawable for multi-pass render instead of osgFX::Effect
osgFX::Effect is awkward to use because of the lazy-definition of passes, no support for compileGLObjects, useless 'Technique' abstraction and having to define silly methods like 'effectAuthor()'

Handling the multi-pass rendering inside the Drawable also avoids redundant culling tests against the same bounding box for each pass.
2017-03-14 19:27:55 +01:00
scrawl
34130fc5cc Fix handling in LightListCallback when the node is not a Group 2017-03-14 19:27:55 +01:00
scrawl
b78a9f89af Refactor LightListCallback to allow for integration in custom Drawables. 2017-03-14 19:27:55 +01:00
scrawl
c1fe9f2a89 Avoid warping the mouse cursor more than necessary
Apparently, the SDL_WarpMouseInWindow can be very expensive (anywhere from 0.1-5ms) due to XSync() in the implementation.

This was causing no-grab=1 configurations to suffer from terrible stuttering when turning the view.
2017-03-14 00:31:27 +01:00
scrawl
928e2061f7 Remove redundant tolower 2017-03-13 02:48:23 +01:00
scrawl
13a6070629 Remove warning spam in skeleton.cpp
If the root bone is missing, that is caused by all bones being missing which will have been logged already.
2017-03-13 02:48:22 +01:00
scrawl
21aad00612 Don't pass key events to the viewer when Alt modifier is held
Fixes the stats panel briefly showing up when using 'Alt+F4' to exit.
2017-03-08 01:27:04 +01:00
scrawl
fc95a45cb6 Don't pass repeat key events to the viewer's eventQueue 2017-03-08 01:27:04 +01:00
Nikolay Kasyanov
7f429f26e1 Allow getting available version information even when clone is shallow 2017-03-07 21:53:49 +01:00
scrawl
c1b1d502ee Fix up commit 330e5fefd1 2017-03-04 21:48:31 +01:00
scrawl
4051018862 optimizer: fix FlattenStaticTransformsVisitor not respecting the is permissible callback 2017-03-04 21:48:31 +01:00
scrawl
5866f0f80b Add OPENMW_OPTIMIZE env variable to help debugging optimizer-related issues
Example:

OPENMW_OPTIMIZE=OFF
OPENMW_OPTIMIZE="~FLATTEN_STATIC_TRANSFORMS"
2017-03-04 21:48:31 +01:00
scrawl
29556a1802 More consistent wording of errors/warnings
A Warning indicates a potential problem in the content file(s) that the user told OpenMW to load. E.g. this might cause an object to not display at all or as intended, however the rest of the game will run fine.

An Error, however, is more likely to be a bug with the engine itself - it means that basic assumptions have been violated and the engine might not run correctly anymore.

The above mostly applies to errors/warnings during game-play; startup issues are handled differently: when a file is completely invalid/corrupted to the point that the engine can not start, that might cause messages that are worded as Error due to the severity of the issue but are not necessarily the engine's fault.

Hopefully, being a little more consistent here will alleviate confusion among users as to when a log message should be reported and to whom.
2017-03-04 21:48:31 +01:00
scrawl
62cc091414 Fix incorrect setting of TexMat in terrain material 2017-03-02 18:07:01 +01:00
scrawl
a759ef5d2e Leave the MyGUI::PixelFormat as Unknown when loading from file as its not required. 2017-03-01 19:04:05 +01:00
scrawl
8fc7942d64 Refactor osgMyGUI::OSGTexture to store width/height inside the object 2017-03-01 19:04:05 +01:00
scrawl
d8505e4f48 Fix a multithreading crash caused by modification of live Geometry 2017-03-01 03:36:04 +01:00
scrawl
4e0011bfc8 Improve NPC loading performance by caching the cleaned objectRoot 2017-03-01 03:00:49 +01:00
scrawl
058681ad73 ShaderVisitor: avoid reset of rig geometry when not required 2017-03-01 03:00:08 +01:00
scrawl
1402e0b872 Don't optimize billboard nodes (Fixes #3774) 2017-02-27 00:39:35 +01:00
scrawl
706ac45c76 Fix missing particles caused by shallow copy of ParticleSystemController 2017-02-26 23:10:41 +01:00
scrawl
9b27ec4945 Remove redundant and ambiguous NiNode::makeBone()
Ambiguous because a skeleton can have multiple skinned meshes, with their own bone weights/bind matrix each.
2017-02-26 22:39:23 +01:00
scrawl
aba3c471a9 nifloader: fix setting of dataVariance for non-controlled bones and refactor the code 2017-02-26 22:34:45 +01:00
scrawl
5caf53b6a3 optimizer: avoid reordering nodes
Fixes an osgParticle cloning issue.

(Fixes #3773)
2017-02-26 03:25:17 +01:00
scrawl
a95773beef Fix unnecessary copy of ParticleSystem in SceneUtil::CopyOp 2017-02-26 03:15:57 +01:00
scrawl
585524805f Add 'tri ' variant of part filters to optimizer ignore list 2017-02-25 21:48:07 +01:00
scrawl
48e0f098ff Add missing copy of callbacks when a Transform is replaced by Group
(Fixes #3770)
2017-02-24 07:38:03 +01:00
scrawl
330e5fefd1 optimizer: consider a Group with more than one child redundant as well
While there could be some value in this hierarchy (i.e. improved culling), we don't know if this is being used sensibly; and using a 'flat' hierarchy helps other optimizations.
2017-02-24 02:58:41 +01:00
scrawl
75677f03e7 Remove SceneManager::notifyAttached 2017-02-24 02:58:41 +01:00
scrawl
3df7a8c4d8 Avoid FLATTEN_STATIC_TRANSFORMS optimization for non-Geometry drawables 2017-02-24 02:58:41 +01:00
scrawl
e4c12e5e56 optimizer: don't merge Geometry that has transparency sorting enabled 2017-02-24 02:58:27 +01:00
scrawl
ebfd845eae optimizer: run MERGE_GEOMETRY after removing redundant nodes 2017-02-23 23:28:50 +01:00
scrawl
43f31d6e54 optimizer: fix MERGE_GEOMETRY to work with Geometries not attached to a Geode 2017-02-23 23:28:50 +01:00
scrawl
f2a323238f optimizer: merge groups as part of REMOVE_REDUNDANT_NODES 2017-02-23 23:28:50 +01:00
scrawl
af716d4b61 optimizer: remove hardcoded condition in RemoveRedundantNodesVisitor 2017-02-23 23:28:50 +01:00
scrawl
698738c649 optimizer: use asXYZ() instead of dynamic_cast 2017-02-23 23:28:50 +01:00
scrawl
f7cb4bd245 optimizer: remove some cruft 2017-02-23 23:28:50 +01:00
scrawl
e33829d493 Add fork of osgUtil::Optimizer with backported fixes that have not been released yet
Remove optimizers that won't be used.
2017-02-23 23:28:50 +01:00
scrawl
5e2335f250 Use the osgUtil::Optimizer post loading in the SceneManager 2017-02-23 23:28:50 +01:00
scrawl
305cccd263 Don't print Geometry data (vertices, triangles, etc.) in showscenegraph 2017-02-23 23:28:50 +01:00