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

267 commits

Author SHA1 Message Date
capostrophic
e654a52b70 More NIF adjustments
Constant interpolation support
2020-01-02 13:07:27 +03:00
Capostrophic
7c4743fdd1 Convert recordptr typedefs to using directives 2019-10-16 01:36:43 +03:00
Capostrophic
8056107c6e More minor NIF improvements 2019-10-16 01:36:43 +03:00
Capostrophic
8baddefdbd Refactor extra data and particle modifier handling
Objects no longer inherit from extra data class
"Controlled" harmful abstraction no longer exists
Introduced NiParticleModifier/NiParticleCollider abstractions
Extra data size reading moved into the base read() method
2019-09-13 20:26:22 +03:00
capostrophic
9c7474f88c Implement NiPalette support (feature #4882) 2019-08-16 20:21:09 +03:00
capostrophic
9e93c9ecd2 Fix multiple-strip NiTriStrips loading 2019-08-08 22:48:24 +03:00
capostrophic
7fc3153f62 Reduce code duplication further 2019-08-08 20:29:45 +03:00
capostrophic
8efbdeaa57 Load NiTriStrips/NiTriStripsData (don't do anything yet) 2019-08-08 17:09:06 +03:00
capostrophic
6928adcee1 Prevent front() and operator[] from causing undefined behavior 2019-08-04 14:47:33 +03:00
Capostrophic
7c8360d0f3 Use NiSwitchNode initial index field 2019-06-09 01:58:02 +03:00
Capostrophic
b08fed6d83 Fix NIF printVersion and allow 4.0.0.0 file loading 2019-04-09 21:58:29 +03:00
elsid
b3c5d64ff3
Use std::make_shared 2019-03-10 22:07:46 +03:00
Andrei Kortunov
60f112d11c Add support for NiRollController (feature #4675) 2019-02-21 12:34:35 +04:00
Andrei Kortunov
b2126c2b6b Apply UVControllers only for given UV Set (bug #4827) 2019-01-26 14:53:33 +04:00
Andrei Kortunov
d2613e35a2 Fix some Clang 7 warnings 2018-11-09 19:42:59 +04:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Andrei Kortunov
1452684d9e Use new logging system for components 2018-08-14 19:42:41 +04:00
elsid
f2a63bcf35
Add unit tests for BulletNifLoader 2018-08-11 18:00:52 +03:00
Andrei Kortunov
c921d1c7e9 Refactor NifStream class (eliminate LNK4221 MSVC warning) 2018-07-10 13:32:52 +04:00
Andrei Kortunov
fba0c155df Fix assertion fail related to NiLookAtController 2018-06-09 17:07:38 +04:00
Andrei Kortunov
5afcc56860 Handle NiLookAtController (feature #4407) 2018-04-29 09:24:13 +04:00
Harald H
d3b623b5d3 http to https for supported urls (#1625)
* http to https for supported urls

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http tp https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* some url fixes

* http to https
2018-03-08 21:23:24 +01:00
Bret Curtis
93f14c219c camelCase 2018-01-01 16:32:20 +01:00
Bret Curtis
7a7b040216 fix building on mips machines 2018-01-01 14:10:23 +01:00
825de71b29 removed an iostream include used for debug prints from nifstream.hpp 2017-09-23 11:10:05 -05:00
30a213a9b3 updates for nifstream optimization including fixing the non-x86 path for little endian reads 2017-09-22 21:08:25 -05:00
8834066dea make streaming to a type array in nif a direct copy from the file into the vector 2017-09-21 23:47:09 -05:00
090a8408b8 made nif basic type read optimizations more portable 2017-09-21 22:37:19 -05:00
c72aa19d6d first pass on optimization of nif parsing functions from the file stream 2017-09-20 23:53:12 -05:00
Bret Curtis
d785344fad purge all instances of <boost/shared_ptr.hpp>, clean up unused headers 2017-06-09 19:08:53 +02:00
Bret Curtis
07f75e1104 replace boost::shared_ptr in extern and components 2017-06-09 19:08:53 +02: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
aa8459b5c7 Revert "Remove redundant allocations for NIF meshes"
This reverts commit a7c5beb7c5.

Conflicts:
	components/nif/data.cpp
	components/nifbullet/bulletnifloader.cpp
	components/nifosg/nifloader.cpp
2017-02-18 02:33:41 +01:00
scrawl
6a37909ee7 Revert "Fix race conditions caused by Array <-> GLBufferObject interactions (Bug #3580)"
This reverts commit 115e563a7a.
2017-02-18 02:33:41 +01:00
scrawl
115e563a7a Fix race conditions caused by Array <-> GLBufferObject interactions (Bug #3580)
The first part of the fix is to assign VBO/EBO's upon loading the array in the Nif reader. This avoids triggering the 'addVertexBufferObjectIfRequired' code path in osg::Geometry which has the race condition when two threads add the same Array at the same time. Essentially, we want the Arrays to be 'const' when they come out of the Nif reader.

The second part of the fix is to make sure not to create empty arrays in the Nif reader (importantly, not assigning a VBO to the empty array). This empty array would be deleted when the NIFFile is cleaned up, and the detachment of the VBO assigned to it (which is still in use by other arrays) would cause threading issues.

This rare crash bug was first introduced with commit a7c5beb7c5. When using OSG dev version 3.5 the crashes were a little more prevalent, because 'addVertexBufferObjectIfRequired' in osg::Geometry is now used even when VBO's are disabled (as part of the VAO support changes).
2017-01-19 22:23:41 +01:00
MiroslavR
99bcf47167 Implement NiSphericalCollider (Closes #3644) 2016-12-06 01:32:13 +01:00
scrawl
9375cbea44 Make NIFFilePtr const 2016-07-10 17:10:19 +02:00
scrawl
5f4ace1bc2 Implement support for sphere map NiTextureEffects (Fixes #1827) 2016-02-24 21:06:41 +01:00
scrawl
e647ee5424 Support RGB and RGBA embedded textures in NIF files (Fixes #2295) 2016-02-18 19:37:56 +01:00
scrawl
a9ac108382 Fully read NiPixelData 2016-02-18 19:37:56 +01:00
scrawl
e8662bea31 Change the way that image origin is converted to OpenGL's lower-left convention
Flip the texture coordinates instead of flipping textures.

This simplifies the TextureManager (no need to worry if the caller wants flipping or not), should make it easier to generalize & multithread it.
2016-02-05 21:03:11 +01:00
scrawl
3ebfb47983 Do not discard root node transformations if the root node is named 'bip01' (Bug #3118) 2016-01-02 01:30:06 +01:00
scrawl
de84452e5a NifFile: close the stream after reading (Fixes #3070) 2015-12-09 04:52:00 +01:00
scrawl
462ef617ce Don't read forward/backward values for Quaternion key lists
https://forum.openmw.org/viewtopic.php?f=8&t=3201&p=35867#p35867
2015-12-04 00:18:54 +01:00
scrawl
695fcf41c4 Optimize ValueInterpolator / KeyframeController
Cache the current position in the animation track and attempt to reuse it in the next frame.

Decent speed up for the Update phase, about 0.3 ms faster in Balmora.
2015-11-30 20:53:47 +01:00
scrawl
a29d1ace2b Read NiSpotLight 2015-11-12 23:45:12 +01:00
scrawl
ba211ad9ad Read NiPointLight (Fixes #3011) 2015-11-12 23:42:17 +01:00
scrawl
626281977e Read NiLODNode (Bug #3008) 2015-11-12 19:52:32 +01:00
scrawl
a7c5beb7c5 Remove redundant allocations for NIF meshes 2015-06-18 01:26:45 +02:00
scrawl
ad46ff7a98 Remove redundant Transform nodes for TriShapes/ParticleSystems with an identity transform 2015-06-15 02:06:04 +02:00
scrawl
c621d0400c Fix error handling for out-of-range NIF roots (found in Bosmora, TR) 2015-06-09 18:22:18 +02:00
scrawl
b0b55e2037 Delete niftest as it's currently broken 2015-06-01 02:48:15 +02:00
scrawl
da24e298ee Fix -Wreorder warnings 2015-05-23 22:44:00 +02:00
scrawl
604580d75d Move toMatrix to Nif::Node 2015-05-07 21:17:15 +02:00
scrawl
e1f4a7f647 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/openmw/engine.cpp
	apps/openmw/mwgui/mainmenu.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwinput/inputmanagerimp.cpp
	apps/openmw/mwrender/animation.cpp
	apps/openmw/mwrender/debugging.cpp
	apps/openmw/mwrender/npcanimation.cpp
	apps/openmw/mwrender/renderingmanager.cpp
	apps/openmw/mwrender/sky.cpp
	components/nif/nifkey.hpp
	components/nif/nifstream.hpp
	components/nifbullet/bulletnifloader.cpp
	components/nifogre/ogrenifloader.hpp
	libs/openengine/bullet/physic.cpp
	libs/openengine/gui/manager.cpp
2015-05-04 02:41:50 +02:00
Rohit Nirmal
997347b01e Silence -Wreorder warnings. 2015-04-28 18:48:02 -05:00
Marc Zinnschlag
e69687b0f2 silenced a warning (potentially unintialised variable) 2015-04-28 14:06:52 +02:00
scrawl
372a54bbc7 Dead code removal 2015-04-25 01:28:01 +02:00
scrawl
28643660d3 Change triangle indices to unsigned 2015-04-21 20:56:16 +02:00
scrawl
167ae600c5 Implement gravity decay (previously unknown float) 2015-04-20 00:37:17 +02:00
scrawl
c4738b11b1 Identify unknown float in NiGravity 2015-04-05 00:09:05 +02:00
scrawl
236d628884 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/opencs/model/doc/document.cpp
	apps/opencs/model/doc/documentmanager.cpp
	components/CMakeLists.txt
	components/bsa/resources.cpp
	components/nif/data.hpp
	components/nif/node.cpp
	components/nifogre/mesh.hpp
	components/nifogre/ogrenifloader.cpp
	components/nifogre/particles.cpp
2015-03-27 17:30:48 +01:00
scrawl
c10c146ad1 Skeleton based bounding box callback for RigGeometry (Bug #455) 2015-03-26 23:15:46 +01:00
scrawl
46cbec9a4a Add skinning auto-detection in nifosg loader 2015-03-25 15:39:41 +01:00
scrawl
b7867d6f0a Stop warning about unused nif properties 2015-03-25 05:29:00 +01:00
scrawl
6d9deaa386 Implement planar collider for particles (Fixes #2149) 2015-03-25 04:57:01 +01:00
scrawl
9141a8d801 Fully implement NiStencilProperty (Feature #1057) 2015-03-24 23:05:20 +01:00
scrawl
9242e6d256 Avoid copying keyframes in controller instances 2015-03-22 23:47:49 +01:00
scrawl
2db5df77f0 Change rotation/scale workaround in preparation for loading .kf controllers 2015-03-22 22:55:35 +01:00
scrawl
f8422c3ed4 Particles mostly completed, still need to attach emitters to the correct node and handle NiBSPArrayController 2015-03-19 03:01:11 +01:00
dteviot
45b6538820 fixed MSVC 2013 warning C4800
forcing value to bool 'true' or 'false'
2015-03-06 23:19:57 +13:00
dteviot
407cd50890 fixed warning C4099:
type name first seen using 'class' now seen using 'struct'
2015-03-06 21:36:42 +13:00
scrawl
6c63bab8e4 Change Nif::Property flags to unsigned 2015-02-23 21:08:25 +01:00
scrawl
8e01d8cb19 Add OSG nifloader, currently supports geometry, materials, basic texturing, skinning, morphing, and most controllers. 2015-02-23 21:06:10 +01:00
scrawl
6b36e55a4e NIF reader cleanup: move definitions to cpp file 2015-02-22 19:17:28 +01:00
scrawl
387969bf42 Remove an old .gitignore 2015-02-22 18:05:46 +01:00
scrawl
f6f37e02df NIF Transformation redundancy fix and include fixes 2015-02-20 17:56:49 +01:00
scrawl
8c10d4badb NIF reader compiles without Ogre 2015-02-17 17:08:55 +01:00
scrawl
d541bc8064 Remove unused functions in nifstream 2015-01-31 22:40:42 +01:00
scrawl
c6c7d102d0 Revert "components/nif/base.hpp now uses the templated get() function"
This reverts commit ad609bff78.

Revert "Made incorrect nif get error message more informative."

This reverts commit 9909c4abad.

Revert "Build the nif file tester by default"

This reverts commit c1315ed90c.

Revert "Converted most nifstream "get multiple" functions to the templated version"

This reverts commit 2619d57bb6.

Revert "Add a templated option for getting vectors to NIFStream"

This reverts commit f318ee0b8c.

Revert "Made NIFStream getters templated"

This reverts commit 4edc4142f3.
2015-01-06 23:36:15 +01:00
Arthur Moore
ad609bff78 components/nif/base.hpp now uses the templated get() function 2015-01-02 01:19:34 -05:00
Arthur Moore
9909c4abad Made incorrect nif get error message more informative. 2015-01-02 01:16:47 -05:00
Arthur Moore
c1315ed90c Build the nif file tester by default
It's extremely useful in determining if a nif file is bad without having to load up openmw or opencs.
Also updated the nif testing script to run at a low priority.
2015-01-01 22:49:33 -05:00
Arthur Moore
2619d57bb6 Converted most nifstream "get multiple" functions to the templated version 2015-01-01 22:49:05 -05:00
Arthur Moore
f318ee0b8c Add a templated option for getting vectors to NIFStream 2015-01-01 22:45:55 -05:00
Arthur Moore
4edc4142f3 Made NIFStream getters templated 2015-01-01 21:39:44 -05:00
Marc Zinnschlag
33d905dc03 Merge remote-tracking branch 'scrawl/master' 2014-12-13 12:37:57 +01:00
Arthur Moore
b8edd9bac3 Get a nif file's version string regardless of its length. 2014-12-12 02:01:46 -05:00
Arthur Moore
cd835152e1 Fix spacing issue for NIF file errors. 2014-12-12 02:01:46 -05:00
Arthur Moore
018f4e6895 Fail early if trying to read a string larger than the nif file size.
This is much better than failing after a few minutes with an out of memory error.
2014-12-12 02:01:46 -05:00
scrawl
6eebe9b44c Read NiFogProperty, but don't use it yet (Feature #920) 2014-12-10 20:51:32 +01:00
scrawl
5a25649076 Implement XYZ rotation keys support (Fixes #1067) 2014-12-05 20:58:03 +01:00
scrawl
b650338d69 Implement drawMode of NiStencilProperty (Feature #1057) 2014-12-03 18:28:35 +01:00
scrawl
e6c59f5585 Revert "Allow NIF rotation matrices that include scale values"
This reverts commit f57ddec6a2.

Conflicts:
	components/nif/nifstream.hpp

(Fixes #2168)
2014-12-03 18:28:35 +01:00
Arthur Moore
4a9a9855bf NIFStream getUInt should return an unsigned integer 2014-10-31 05:01:26 -04:00
Arthur Moore
4583dc05db Move NIFStream functions into a cpp file where they belong 2014-10-31 04:54:16 -04:00
scrawl
f57ddec6a2 Allow NIF rotation matrices that include scale values (Fixes #2052) 2014-10-27 21:53:00 +01:00
Arthur Moore
38bcff2622 Moved base NIF classes into a separate file.
This resolves the dependency mess, and makes things more readable.
The dependency tree for nif records now looks like this:
Record.hpp
--base.hpp
----controlled.hpp
----controller.hpp
----data.hpp
----effect.hpp
----extra.hpp
----node.hpp

Node.hpp has many extra dependencies because nifogre only includes it instead of each of these files.
That should be fixed.
2014-10-19 03:01:30 -04:00
Arthur Moore
5abed1c32a Print a NIF file's version information when an error occurs 2014-10-19 02:54:27 -04:00
Arthur Moore
9ebf3f2f10 Provide more data when nifstream throws a runtime_error 2014-10-19 02:42:28 -04:00