Commit Graph

326 Commits (4db96186d201dc86b6f3699b0315058109576ef2)

Author SHA1 Message Date
elsid cc8c7002ea
Cleanup components includes 2 years ago
elsid f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2 years ago
elsid ba69146ced
Use std::string_view to avoid redundant std::string construction 2 years ago
elsid 0614b82452
Restore UnrefQueue to destruct animation asynchronously 2 years ago
Andrei Kortunov c36c28e8f9 Move NIF implementation to cpp files 2 years ago
Andrei Kortunov dc0d6fe31d Avoid code duplication 3 years ago
Andrei Kortunov facdc8fc0d Use string_view 3 years ago
Andrei Kortunov d83382d236 Rework Profiler to work with VFS 3 years ago
Andrei Kortunov 59c4ea014d Rework StatsHandler to support VFS 3 years ago
Andrei Kortunov 6f6b5ba04b Some refactoring 3 years ago
Andrei Kortunov dd04bfccfb Load fonts 3 years ago
Andrei Kortunov d3da09878d Drop line about non-existent UnrefQueue 3 years ago
glassmancody.info a0265ffb89 only enable soft particles when enabled in settings 3 years ago
glassmancody.info b09411d396 allow soft particles on meshes and add extra data extensions 3 years ago
psi29a feef257584 Merge branch 'postprocessor-stereo' into 'master'
[Postprocessing] Stereo integration

See merge request OpenMW/openmw!1988
3 years ago
Mads Buvik Sandvei b0e4c7e76a [Postprocessing] Stereo integration 3 years ago
Nelsson Huotari 334c6dde0b custom class for osgAnimation::RigGeometry, Collada animated deforming body parts 3 years ago
elsid 3affe9913f
Limit the number of simultaneously open not actively used content files
Use LRU cache for ESMReaders. When cache capacity is reached close least
recently used ESMReader. Remember the file name if a reader was open. Once the
reader requested again open the file if there is stored name for it. Put
released ESMReader to the back of the free items list. Close ESMReader's from
the front of the free items list.

Cached item can be used only by one client at the same time. If the same item is
requested twice exception is thrown. This should never happen in practice. If
this happens need to fix the client logic.

It's allowed to go over the capacity limit when requesting different readers.
Ideally this should never happen but there will be system error anyway
signalizing about too many open files. Need to fix client logic in this case.

All places that were using a vector of ESMReaders now using the cache. Cache is
local for each use case and there is no need for a thread safety.
3 years ago
Evil Eye a95b6e050a Replace new with make_unique in components 3 years ago
cody glassman ac6089a430 skip flipping of 3D textures which is unsupported in OSG 3 years ago
cody glassman 04843fed6d moddable post-processing pipeline 3 years ago
Evil Eye a64979e25d Replace empty std::string assignments 3 years ago
fredzio d05a2facf3 Handle NCC flag in Nif files. Objects with this flag will collide only with camera.
Expose objects with NC flag to be used by Lua mods.
3 years ago
elsid e7f3524924
Add a tool to load and print information about all bullet objects in all cells 3 years ago
Cody Glassman 9cafc31c0d Restore ripples with soft particles 3 years ago
jvoisin 1a6be08149 Fix "warning: loop variable is copied but only used as const reference;... 3 years ago
Petr Mikheev 7fe5351f55 Fix compilation error on windows: cannot convert from 'std::filesystem::path'... 3 years ago
Petr Mikheev b06248a31f Fix #6502 3 years ago
elsid 96eb8d7be9
Write generated navmesh to navmeshdb
Perform all request to db in a single thread to avoid blocking navmesh
generator threads due to slow write operations.

Write to db navmesh for all changes except update as it done for memory cache.

Batch multiple db operations into a single transaction to speed up writing by
not executing fsync after each insert/update query. All reads are performed in
the same transaction so they see uncommited data.
3 years ago
elsid a665a38aca
Use MurmurHash3_x64_128 for file hash 3 years ago
Cody Glassman d85f772269 Depth refactor 3 years ago
Cédric Mocquillon 40656b3135 Embed error marker in osgt format inside a string defined in misc/errorMarker.hpp.
Use the embed error marker we fail to load a mesh.
3 years ago
psi29a 41bd20e358 Merge branch 'bullet_shape_hash' into 'master'
Store BulletShape source file name and content hash

See merge request OpenMW/openmw!1379
3 years ago
elsid d7041613ef
Store BulletShape source file name and content hash 3 years ago
Alexei Dobrohotov 9880c43c86 Add specular strength shader parameter 3 years ago
psi29a 5836d0225f Merge branch 'leave_butter_to_soften' into 'master'
Soft Particles (#6128)

See merge request OpenMW/openmw!980
3 years ago
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.
3 years ago
glassmancody.info 8c3b00164e soft particles 3 years ago
elsid b731a981c4
Make BulletShape::isAnimated inlined 3 years ago
elsid c83facd9d3
Avoid redundant osg::ref_ptr<const BulletShape> copy 3 years ago
elsid ed5a4e195b
Use unique_ptr to avoid possible memory leak 3 years ago
elsid 8e71c246bf
Remove redundant BulletShape getters 3 years ago
elsid fc9a405dc5
Make BulletShape::makeInstance free function 3 years ago
elsid b905dd17c3
Use unique_ptr to store btCollisionShape in BulletShape 3 years ago
elsid 80e3623d9a
Avoid dynamic cast in duplicateCollisionShape 3 years ago
elsid ca8584f6f6
Move functions independent from BulletShape into anonymous namespace 3 years ago
elsid 29a772c33f
Rename Resource::BulletShape::CollisionBox fields according to styleguide 3 years ago
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.
3 years ago
Bo Svensson 617eec338a
removes version guard (#3173)
We currently use a version guard to adapt to a change in the number of parameters supplied to osg::TriangleFunctor's operator() template functor. The differing parameter is unused in our code. Crucially, operator() is not an override, so we can just add a default value for the differing parameter. Such a default allows us to apply identical code to both versions of the library without regressing functionality.
3 years ago
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.
3 years ago