Commit Graph

40 Commits (master)

Author SHA1 Message Date
Andrei Kortunov 696cf9ab05 Extend variables range to avoid integer overflow 4 years ago
Alexei Dobrohotov db9c174ca8 Make NIF particle node handling more generic 4 years ago
Alexei Dobrohotov 117697ea22 Fix NiStringPalette loading 4 years ago
Alexei Dobrohotov f3f5dcb016 Read a few more NIF types
NiFloatInterpolator, NiPoint3Interpolator, NiTransformInterpolator, NiBoolInterpolator
Update a few existing controller records
Update NiSkinInstance
4 years ago
Alexei Dobrohotov a38c629425 Read NiSkinPartition 4 years ago
Alexei Dobrohotov afea11b70a Read NiStringPalette and NiBoolData 4 years ago
Alexei Dobrohotov 4fc5e22e9e NIF fixes and cleanup
Get rid of NodeIndexHolder
Use unsigned 32-bit type for NIF record index
Fix calculation of the number of UV sets
4 years ago
Alexei Dobrohotov 05cd005b30 Fix NiTriStripsData loading 4 years ago
Alexei Dobrohotov 29ccb09da5 Introduce some extended NIF definitions 4 years ago
Bret Curtis 0d1b7fd3f0
Merge pull request #2908 from Capostrophic/uvsets
Remove 63 UV set limit
5 years ago
Capostrophic 6f94848dec Remove 63 UV set limit (now 65535) 5 years ago
Capostrophic 7aca18f92b Handle NiLines (feature #5445) 5 years ago
Capostrophic b665fed8f2 Introduce NiGeometry abstraction 5 years ago
Capostrophic 5377e0491b Adjust NiPixelData loading 5 years ago
Capostrophic a08a9518c3 NIF version adjustments
Cut down on obscure version numbers
Call generateVersion without using a stream object
5 years ago
Capostrophic e363d5df21 Some more minor NIF support fixes 5 years ago
capostrophic 32caab663f Enumerate interpolation types properly 5 years ago
capostrophic e654a52b70 More NIF adjustments
Constant interpolation support
5 years ago
Capostrophic 8056107c6e More minor NIF improvements 5 years ago
capostrophic 9c7474f88c Implement NiPalette support (feature #4882) 5 years ago
capostrophic 9e93c9ecd2 Fix multiple-strip NiTriStrips loading 5 years ago
capostrophic 7fc3153f62 Reduce code duplication further 5 years ago
capostrophic 8efbdeaa57 Load NiTriStrips/NiTriStripsData (don't do anything yet) 5 years ago
elsid b3c5d64ff3
Use std::make_shared 6 years ago
Bret Curtis 93f14c219c camelCase 7 years ago
Bret Curtis 7a7b040216 fix building on mips machines 7 years ago
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.
8 years ago
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
8 years ago
scrawl 6a37909ee7 Revert "Fix race conditions caused by Array <-> GLBufferObject interactions (Bug #3580)"
This reverts commit 115e563a7a.
8 years ago
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).
8 years ago
scrawl e647ee5424 Support RGB and RGBA embedded textures in NIF files (Fixes #2295) 9 years ago
scrawl a9ac108382 Fully read NiPixelData 9 years ago
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.
9 years ago
scrawl a7c5beb7c5 Remove redundant allocations for NIF meshes 10 years ago
scrawl 28643660d3 Change triangle indices to unsigned 10 years ago
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
10 years ago
scrawl c10c146ad1 Skeleton based bounding box callback for RigGeometry (Bug #455) 10 years ago
scrawl 9242e6d256 Avoid copying keyframes in controller instances 10 years ago
scrawl 6b36e55a4e NIF reader cleanup: move definitions to cpp file 10 years ago
Arthur Moore 8be6aefd95 Moved functions from niffile.cpp to where they belong.
Also cleaned up some #includes

Removed a few asserts.  Vector already throws an out_of_range error.
11 years ago