Commit Graph

3506 Commits (1cfc1f9bdb32618d46acbd72f26f138f7a7473c0)

Author SHA1 Message Date
Kyle Cooley 2abf7f1752 Remove unnecessary cache dump 7 years ago
Kyle Cooley 09e645a0e0 Fix careless mistake. 7 years ago
Kyle Cooley 25d4a0370f Changes to land data access in tables, also update Land once per frame in scene view. 7 years ago
Kyle Cooley d030b595f8 Fix potential segfault, cleanup, get rid of warnings. 7 years ago
Kyle Cooley 72cb405de2 Some bug fixes, changes to land load code. 7 years ago
Kyle Cooley 2eacc2f093 Changes to land creation, add ability to specifically clear terrain cache 7 years ago
Kyle Cooley ab607f3028 Tweaks to land loading, land cloning, terrain signals, placeholder land update handling 7 years ago
Andrei Kortunov 538498230b Declare mClient variable 7 years ago
scrawl dca31b7ffa Remove redundant _boundingBoxComputed which no longer exists in osg master (Fixes #4075) 7 years ago
Kyle Cooley d3014cf394 Temporary fix for adding new lands, cloned lands will still reference old data though 7 years ago
Kyle Cooley 7cc95a11a4 Add more land table columns 7 years ago
scrawl 2e58024f1c Fix intersections with Rig/MorphGeometry, was caused by an issue in the LineSegmentIntersector not respecting the cullingActive flag of a drawable. 7 years ago
scrawl 5e790b567e Fix node path issue
Needs to be set so that the 'cullingActive' flag of the node path's end can be checked
7 years ago
scrawl 4bef8260ab Add const qualifiers 7 years ago
scrawl 5d524a6a10 Add custom version of MorphGeometry replacing osgAnimation
Double buffering, custom bounding box and the update in the cull visitor (instead of update) are now all handled internally rather than needing hacks and/or callbacks.
7 years ago
scrawl f1ebb129c1 Fix ShaderVisitor to deal with the fact RigGeometry no longer derives from Geometry 7 years ago
scrawl 209e139aa8 Move double buffering implementation inside RigGeometry
The double buffering is an implementation detail so it should be handled as such, rather than mandating the scene graph to be structured in a certain way.

Override accept(NodeVisitor&) instead of using callbacks.
7 years ago
Kyle Cooley 9e41f1340a Replace nonconst getId with setId, add template specialization and specialized derived classes for LandTexture 7 years ago
scrawl 45f7563a55 Revert "Revert "Check for a Geometry node when attaching bodyparts""
Issue with shaders has been fixed with b9931fb71c

This reverts commit a1e3fb7604.
7 years ago
scrawl b9931fb71c Set the shader on the node containing the StateSet 7 years ago
scrawl a1e3fb7604 Revert "Check for a Geometry node when attaching bodyparts"
This reverts commit 3fc8634206.
7 years ago
scrawl 3fc8634206 Check for a Geometry node when attaching bodyparts (Fixes #3957) 7 years ago
scrawl bc82c6a35d Use white color if told to use nonexisting vertexcolors (Fixes #3833) 7 years ago
scrawl 5d2fe5e887 Implement lightmode/vertmode of NiVertexColorProperty 7 years ago
scrawl 4fba157d3b Implement releaseGLObjects for cached resources 7 years ago
Kyle Cooley d3d04171f9 Fix seg fault, undo changes BsaArchive 7 years ago
Kyle Cooley 8c4b12a603 VFS changes, one VFS and resource system per document.
Added ability to reset a VFS::Manager.
Removed ability to rebuild the index for a VFS::Manager.
Moved VFS creation to CSM::Data.
7 years ago
Kyle Cooley 979b0d7211 Code cleanup and more cache clearing 7 years ago
Kyle Cooley 679a284735 Use scoped lock instead of directly locking/unlocking mutex 7 years ago
Kyle Cooley 3b9326d238 Clear terrain cache and reload terrain 7 years ago
Kyle Cooley b62cb0e2a4 Clear out GPU texture/stateset cache 7 years ago
Kyle Cooley 7914fd5c9c Re-index BSAs 7 years ago
Kyle Cooley d7744e8b16 A bit of cleanup 7 years ago
Kyle Cooley 5950b26912 Update scene assets 7 years ago
Kyle Cooley 742bd00ec6 Clear cached resources 7 years ago
Kyle Cooley d31ed83b54 Preliminary asset reloading 7 years ago
Thunderforge 54fe645703 Removing erroneous comment since Qt is not relevant here 7 years ago
Thunderforge 464c64a306 Swap the OIS Ctrl and Meta keys on macOS to match Qt 7 years ago
scrawl cef415509f Revert "Merge redundant input events" 8 years ago
Julian 3cfd9af945 merge redundant input events 8 years ago
scrawl c9d9461d3e Add Spacer class derived from AutoSizedWidget
Using a normal widget as a spacer with HStretch/VStretch may not work properly because for widgets not derived from AutoSizedWidget, the HBox/VBox treat the widget's current size as the requested minimum size. This leads the layout to break when resized more than once.

The new class sets HStretch and VStretch to true by default to save some typing.
8 years ago
PlutonicOverkill 5049fe4320 Pause game when minimised on Windows 8 years ago
scrawl 3e03a0d7bd Terrain: remove ref argument that is now always true 8 years ago
scrawl ac78d01b2b Terrain: use the main camera's viewpoint for intersection tests
Fixes lag spikes caused by intersection tests loading/unloading terrain pages.
8 years ago
scrawl ffb6dff6aa Merge pull request #1338 from akortunov/valuefix
Change mValue type for clothes to unsigned short (bug #3960)
8 years ago
Andrei Kortunov 2bd105f5e2 Change mValue type for clothes to unsigned short (fixes #3960) 8 years ago
scrawl 40dc1dd6f5 Fix checking a variable before it's assigned (Bug #3950) 8 years ago
scrawl be940656db Add '0' as an alias for 'OFF' for OPENMW_OPTIMIZE 8 years ago
scrawl 54bb1b13cb Change NCO/NCC flags to NC* (Fixes #3915) 8 years ago
Allofich 42402976e3 Fixes for building in MSVC 8 years ago
Bret Curtis c6805314c2 be explicit about what we are trying to catch instead of catching everything and fixed up formatting
use Allman style brackets not K&R style, additional formatting for fallback.cpp which needed some love

revert allman formatting changes
8 years ago
Bret Curtis 7c758a6293 std::stof can not handle comma in us localization and can not handle period in french localization, using std::replace is not a solution, going back to boost::lexical_cast 8 years ago
Bret Curtis f0b21cca22 use own inline hash_combine function 8 years ago
David Carlier 8a5c62de97 needs this head for getuid 8 years ago
Bret Curtis c781d1f8ed purge unnecessary imports
add fstream back

add fstream back

add fstream back

add fstream back

add fstream back

add fstream back

add fstream back
8 years ago
Bret Curtis 154d7cffa2 replace and purge boost::function 8 years ago
Bret Curtis d48b829b45 replace and purge boost::lexical_cast 8 years ago
Bret Curtis 98752a9702 replace boost::bind 8 years ago
Bret Curtis b7c27e5e96 remove boost/tuple 8 years ago
Bret Curtis 39185e6f8c purge the rest of boost::shared and any other boost related things that no longer are required
put boost system back in, clean others up

revert Qt

add back boost fstream
8 years ago
Bret Curtis d785344fad purge all instances of <boost/shared_ptr.hpp>, clean up unused headers 8 years ago
Bret Curtis 07f75e1104 replace boost::shared_ptr in extern and components 8 years ago
Ewan Higgs 38a2de3c51 convert std::autor_ptr to std::unique_ptr, originally by Ewan Higgs and updated by Bret Curtis 8 years ago
Julian Ospald 5d85fa9220
Fix build with osg >= 3.5.6 8 years ago
scrawl 813af876f6 Use a partial binary search in isReservedName (Fixes #3835) 8 years ago
scrawl 8d84869432 Fix commit 8f71b65d38 (don't overwrite the previous user data)
This resulted in a crash/corruption because the KeyframeController, for performance reasons, does not check that the expected user data is there and of correct type.

(Fixes #3829)
8 years ago
scrawl 45d9e38616 Fix check for default material 8 years ago
Allofich e095817ac2 Treat =< and => as == in scripts
(Fixes #3744)
8 years ago
Allofich ff3e307059 Pass parameters by const reference 8 years ago
scrawl 8f71b65d38 sceneutil/attach: inherit the UserDataContainer to avoid the resource cache from being cleared incorrectly 8 years ago
MiroslavR c962b6dd6d Fix correctActorModelPath to work properly when both backward and forward slashes are used in the path (Fixes #3822) 8 years ago
MiroslavR 395e97cf40 Remove evil "implicit GetJournalIndex" hack from expression parser 8 years ago
Allofich 3780d94214 Cast LAND_SIZE to integer to avoid linking error 8 years ago
Allofich 2a505b427d Remove second LAND_SIZE definition 8 years ago
scrawl f676b62711 Remove unused variable 8 years ago
scrawl c992cb6e82 Fix texture not being applied on rendering the composite map (Fixes #3791) 8 years ago
MiroslavR 06dc94552f Log a warning if size in SCHD (script header) does not match SCDT (bytecode) size instead of failing 8 years ago
scrawl a070551af3 Attempt to fix naming conflict on windows 8 years ago
scrawl 3d58ba7301 Fix boolean test 8 years ago
scrawl fd215caa02 Add local LandCache to cut down on store searches 8 years ago
scrawl 088d5604bf Use a shader if required to display the composite map
Fixes composited terrain not respecting the 'clamp lighting' setting.
8 years ago
scrawl 7f5beb3172 Remove unused includes 8 years ago
scrawl 5044816770 Remove unused code 8 years ago
scrawl b66c2abfe3 Build the bounding sphere in the loading thread (only relevant for TerrainGrid) 8 years ago
scrawl 9e9c028f1d Skip light collection for far away terrain 8 years ago
scrawl 0782839a42 Avoid redundant culling tests on the transform/drawable 8 years ago
scrawl fb8ac06524 Reduce the minSize of quad tree nodes for better performance 8 years ago
scrawl a041546b54 Use the quad tree's minSize in the LodCallback 8 years ago
scrawl e4e8821902 Refactor update of lodFlags 8 years ago
scrawl 2aa09639a9 Re-enable terrain intersections 8 years ago
scrawl db00d47ca2 Hold a ref to the intersection visitor's view if possible 8 years ago
scrawl 11bee6ee35 Avoid compiling composite maps that are no longer referenced 8 years ago
scrawl 9eed7fa6f5 Fix composite map when force shaders is enabled 8 years ago
scrawl d055dc25bf Add custom traversal for local map camera to avoid loading terrain nodes that are exactly outside the border to another cell 8 years ago
scrawl 7d50b6c2e2 Add QuadTreeWorld::cacheCell to preload cells at max LOD for local maps 8 years ago
scrawl 6ccb6009ee Use the View-based preloading for TerrainGrid as well 8 years ago
scrawl 3c29e2dbeb Refactor ownership of terrain views 8 years ago
scrawl 28fd492711 Don't use terrain LOD for the map camera 8 years ago
scrawl e7a0878c10 Add CompositeMapRenderer info to the stats panel 8 years ago
scrawl c921620ef3 Compile the drawables of a composite map one by one to avoid frame drops for larger maps 8 years ago
scrawl 47ca8aeee5 Use the time elapsed instead of # compiled as limit 8 years ago
scrawl 8a6d909b22 Fix composite map being compiled twice 8 years ago
scrawl 683e625c6c Rewrite CompositeMapRenderer to be based on Drawable and share the FBO 8 years ago
scrawl 4baa795152 Add preloading implementation to QuadTreeWorld 8 years ago
scrawl 9db71e3f62 Recompute the LOD stitching when the view changes 8 years ago
scrawl ef704db877 Fix reset of changed flag 8 years ago
scrawl 1c15686353 Remove non required use of WorkQueue 8 years ago
scrawl 433900fca5 Fix waiting on initial quad tree build 8 years ago
scrawl 4dbd224249 Hide the terrain in non-exterior cells 8 years ago
scrawl 2580de11a4 Refactor ownership of ViewDataMap 8 years ago
scrawl 5a3c645c89 Enable lazy compiling of composite maps 8 years ago
scrawl 99e18f0d68 Clear the ViewData on exit 8 years ago
scrawl bb991850da Add LOD stitches 8 years ago
scrawl 6bd286d924 Fix unnecessary resizing in ViewData 8 years ago
scrawl 8c151364df Add special handling for CullVisitor to QuadTreeWorld.
- Cull only against bounding box, not bounding sphere, as this appears to perform better.
- Also traverse into non visible nodes to compute their LOD, this is to avoid nodes having to be loaded in when the player turns the view around, and will avoid unnecessary refs/unrefs of rendering data in the View. This should probably be turned off at some point for static cameras, such as the local maps.
8 years ago
scrawl f19a88be9d Reject QuadTreeNodes with invalid bounds 8 years ago
scrawl 7d004bf757 Preliminary rendering of QuadTreeWorld 8 years ago
scrawl e36bdb490e Add view data structure for efficient collection of LOD nodes to use for a given camera/intersection 8 years ago
scrawl 0efc54c749 Subdivide the composite maps 8 years ago
scrawl 0756fc4ae6 Optimize getBlendmaps for the general case that most points are within the given cell 8 years ago
scrawl 81c9853fe9 Fix handling in getBlendmaps when the chunk is >1 ESM::Cell 8 years ago
scrawl b384087e28 Fix handling in fillVertexBuffers when the chunk is >1 ESM::Cell 8 years ago
scrawl 819860081f Remove custom bounding box 8 years ago
scrawl ce8c4ad4f5 Add quad tree implementation (no rendering yet) 8 years ago
scrawl 14225a42c6 Remove unused pointer to IncrementalCompileOperation 8 years ago
scrawl c487df0abb Move updateTextureFiltering and material into the base class 8 years ago
scrawl 5eff286c71 Use separate node mask and parent for CompositeMapRenderer to allow the loading screen to pre compile composite maps. 8 years ago
scrawl 7e4450da55 Change the renderOrder of composite maps to ensure they are updated before water reflections or other cameras that may be using it. 8 years ago
scrawl b1d4bb5708 Add CompositeMapRenderer
Temporarily render all terrain using composite maps for testing purposes
8 years ago
scrawl e323b2fa7b Use the SceneManager's ShaderManager 8 years ago
scrawl 0fc465da59 Store the min/max height in LandData 8 years ago
scrawl 051c17a184 Make reportStats const 8 years ago
scrawl 80a0398f9d Load LandData into the LandObject to avoid threading conflicts when the same data is being loaded by two threads 8 years ago
scrawl 20d30bb8d7 Move mDataLoaded into LandData 8 years ago
scrawl 16b5cadd9e Fix order of operations w.r.t clearing cache 8 years ago
scrawl 2c68ed4fb4 Remove no longer required use of UnrefQueue as the new resource manager will naturally clear the cache from the worker thread 8 years ago
scrawl 35d53acc65 Factor out terrain chunk loading/caching into a new resource manager 8 years ago
scrawl 274690f790 Refactor BufferCache to allow caching buffers of different sizes 8 years ago
scrawl 9a3a64f0c4 Add resource manager for ESM::Land to allow data to be unloaded when no longer required 8 years ago
scrawl 804f873649 terrain: factor out texture caching into a separate class 8 years ago
scrawl 4cd4457d21 Add support for Functors to ObjectCache 8 years ago
scrawl 9d72d9f0c9 Change order of operations in SceneManager::updateCache to allow deleting of StateSets that just got unreferenced by the scene 8 years ago
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.
8 years ago
scrawl 34130fc5cc Fix handling in LightListCallback when the node is not a Group 8 years ago
scrawl b78a9f89af Refactor LightListCallback to allow for integration in custom Drawables. 8 years ago
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.
8 years ago
scrawl 928e2061f7 Remove redundant tolower 8 years ago
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.
8 years ago
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.
8 years ago
scrawl fc95a45cb6 Don't pass repeat key events to the viewer's eventQueue 8 years ago
Nikolay Kasyanov 7f429f26e1 Allow getting available version information even when clone is shallow 8 years ago
scrawl c1b1d502ee Fix up commit 330e5fefd1 8 years ago
scrawl 4051018862 optimizer: fix FlattenStaticTransformsVisitor not respecting the is permissible callback 8 years ago
scrawl 5866f0f80b Add OPENMW_OPTIMIZE env variable to help debugging optimizer-related issues
Example:

OPENMW_OPTIMIZE=OFF
OPENMW_OPTIMIZE="~FLATTEN_STATIC_TRANSFORMS"
8 years ago
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.
8 years ago
scrawl 62cc091414 Fix incorrect setting of TexMat in terrain material 8 years ago
scrawl a759ef5d2e Leave the MyGUI::PixelFormat as Unknown when loading from file as its not required. 8 years ago
scrawl 8fc7942d64 Refactor osgMyGUI::OSGTexture to store width/height inside the object 8 years ago
scrawl d8505e4f48 Fix a multithreading crash caused by modification of live Geometry 8 years ago
scrawl 4e0011bfc8 Improve NPC loading performance by caching the cleaned objectRoot 8 years ago
scrawl 058681ad73 ShaderVisitor: avoid reset of rig geometry when not required 8 years ago
scrawl 1402e0b872 Don't optimize billboard nodes (Fixes #3774) 8 years ago
scrawl 706ac45c76 Fix missing particles caused by shallow copy of ParticleSystemController 8 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 aba3c471a9 nifloader: fix setting of dataVariance for non-controlled bones and refactor the code 8 years ago
scrawl 5caf53b6a3 optimizer: avoid reordering nodes
Fixes an osgParticle cloning issue.

(Fixes #3773)
8 years ago
scrawl a95773beef Fix unnecessary copy of ParticleSystem in SceneUtil::CopyOp 8 years ago
scrawl 585524805f Add 'tri ' variant of part filters to optimizer ignore list 8 years ago
scrawl 48e0f098ff Add missing copy of callbacks when a Transform is replaced by Group
(Fixes #3770)
8 years ago
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.
8 years ago
scrawl 75677f03e7 Remove SceneManager::notifyAttached 8 years ago
scrawl 3df7a8c4d8 Avoid FLATTEN_STATIC_TRANSFORMS optimization for non-Geometry drawables 8 years ago
scrawl e4c12e5e56 optimizer: don't merge Geometry that has transparency sorting enabled 8 years ago
scrawl ebfd845eae optimizer: run MERGE_GEOMETRY after removing redundant nodes 8 years ago
scrawl 43f31d6e54 optimizer: fix MERGE_GEOMETRY to work with Geometries not attached to a Geode 8 years ago
scrawl f2a323238f optimizer: merge groups as part of REMOVE_REDUNDANT_NODES 8 years ago
scrawl af716d4b61 optimizer: remove hardcoded condition in RemoveRedundantNodesVisitor 8 years ago
scrawl 698738c649 optimizer: use asXYZ() instead of dynamic_cast 8 years ago
scrawl f7cb4bd245 optimizer: remove some cruft 8 years ago
scrawl e33829d493 Add fork of osgUtil::Optimizer with backported fixes that have not been released yet
Remove optimizers that won't be used.
8 years ago
scrawl 5e2335f250 Use the osgUtil::Optimizer post loading in the SceneManager 8 years ago
scrawl 305cccd263 Don't print Geometry data (vertices, triangles, etc.) in showscenegraph 8 years ago
scrawl 4e5a1e6123 nifloader: improve setting of DataVariance 8 years ago
scrawl 1d6b5b2a52 Add StringUtils::CiComp operator 8 years ago
scrawl 6e996bf2a3 Create TriShapes with an identity transform as a Group 8 years ago
scrawl 6e5d9efa93 Remove NifLoader::optimize, to be replaced with something better 8 years ago
scrawl c231b06320 Remove boneOffset node after using it 8 years ago
scrawl d75a3fd0fb Add SharedStateManager to the stats panel 8 years ago
scrawl 8f79fa3d72 Add resource statistics panel opened with F4 8 years ago
scrawl 3693f05ef5 Transform world-space particle systems in update callback so that animations are accounted for 8 years ago
scrawl c45013c983 Fix particle systems not being rendered in their first frame 8 years ago
scrawl 4aa40d16bc Increase the importance of light radius when sorting lights (Bug #2759) 8 years ago
scrawl 3f27c8cc97 Always print context for script warnings to remove the need for verbose option
(Fixes #2813)
8 years ago
scrawl 3b24bb9a5e Use OS X cursor workaround for GL_VENDOR ATI and add an environment variable for control 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 57b585570a Preload magic effect visuals of the player's selected weapon/spell 8 years ago
scrawl ddd6605608 Move WNAM out of LandData to avoid redundant (de)allocations on startup 8 years ago
scrawl e00b420f68 Move saving of LandData into Land::save 8 years ago
scrawl 325bf66653 Return const Land in ESMStore 8 years ago
Marc Zinnschlag 93c5630e02 Merge remote-tracking branch 'matahualpa/openmw-cs_tablecontents' 8 years ago
scrawl 892d1b162d nifloader: ignore nodes named 'bounding box' (Fixes #3650) 8 years ago
MAtahualpa b4ef9e2314 Update loadbook.cpp 8 years ago
MAtahualpa 5a58ab1837 Update loadbook.hpp 8 years ago
scrawl bbcba57495 Disable hitAttemptActorId saving code for now 8 years ago
scrawl 2ea0db1d1a Merge pull request #1198 from Allofich/combat
Make combat engagement logic more like vanilla
8 years ago
scrawl 67e4a7e37b Change some osg::clone's to direct copy constructor to avoid dynamic_cast overhead 8 years ago
scrawl d141b98f0c Add base animations to preloadCommonAssets 8 years ago
scrawl 839928e210 Fix light data being reset for the wrong light 8 years ago
scrawl a46593fa74 Add PreloadItem::abort() to avoid no longer required cells from blocking the work thread 8 years ago
scrawl d3e1dbe920 Fix race conditions in terrain loader caused by static variables 8 years ago
scrawl 4d53ab6c32 nifloader: attempt to remove redundant root node when a Skeleton is added 8 years ago
scrawl 2a42c4781e nifloader: override animflags instead of accumulating them 8 years ago
scrawl 0187f2ce4c nifloader: combine animFlags and particleFlags (Bug #2100) 8 years ago
scrawl bccfd6cef8 nifloader: handle textures with no image that are later assigned in a FlipController
As found in vurt's trees (Bug #2100)
8 years ago
scrawl 792f505b2a Fix potential crash in ShaderVisitor for textures with no image assigned 8 years ago
scrawl 45ae8d5ffa Add support for GL_AMBIENT colorMode to shaders as required by particle systems 8 years ago
scrawl c00532d82d Add LightStateCache to avoid redundantly setting the same gl_Light
Normally, osg::State would do this for us (via lastAppliedAttribute), but since we're using a custom StateAttribute to apply all lights at once, we have to track ourselves.

Further reduction of GL calls in a typical scene by ~2%
8 years ago
scrawl 4d4dc1b9c1 Add specialized DisableLight state attribute for more efficient undoing of light state
Seems to reduce # of GL calls by 10-15% in a typical scene.
8 years ago
Allofich 5d2090684a Store mHitAttemptActorId in save files 8 years ago
scrawl a1069dce3c Change UnrefQueue to accept osg::Referenced instead of osg::Object 8 years ago
scrawl 33e654f94d Add explicit handling of most commonly used nodes to NodeVisitors to avoid excessive virtual function calls 8 years ago
scrawl c95868969b Early out for scene graphs with no update callbacks in SceneManager::notifyAttached 8 years ago
scrawl 767eba941f Speed up finding of attachment node by using the cached nodeMap 8 years ago
scrawl a76d693627 Speed up ControllerVisitor by skipping sub graphs that have no ChildrenRequiringUpdateTraversal() 8 years ago
scrawl 30b101b175 Fix build error in OSG_USE_FLOAT_MATRIX=OFF mode due to a double implicit conversion to double (pun doubly intended) 8 years ago
scrawl b4a6b6387b Create own instance of osgDB::SharedStateManager so we control when to call prune()
prune() is now called in the background thread, just like the resource cache update.

Seems to improve performance by ~0.3 ms/frame
8 years ago
scrawl 84a92e665c Improve performance in RigGeometry by optimizing for the most common case of identity geomToSkelMatrix 8 years ago
scrawl f3045331f1 Fix regression in handling of NiZBufferProperty 8 years ago
scrawl 53e4db8a8f Add dummy serializer for CameraRelativeTransform to allow serializing content of Sky Root 8 years ago
scrawl c5f8ff6e0e Add names to several nodes for debugging purposes 8 years ago
scrawl 851f61ac82 Always assign osg::Material when a material controller is used 8 years ago
scrawl 9180089a3b Add sharing for more State Attributes, most notably BlendFunc and AlphaFunc, to improve the state tracking in osg::State and reduce the number of GL calls 8 years ago
scrawl 960d4a96c3 Reduce the number of osg::Material state by setting the default state on the graph root 8 years ago
scrawl e399e10607 Add missing lock in shareMaterial 8 years ago
scrawl 34deb6e7b1 Add 'showSceneGraph' command to export the scene or a particular object to .osgt for debugging purposes 8 years ago
scrawl e90941a8b3 Wrap the scene template reference in another object for const correctness and to avoid it from being serialized with the osgDB serializer 8 years ago
Allofich 0f20312012 Fix MSVC warnings 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 ac61535d2c optimize OSGVertexBuffer by double buffering the vertex array instead of recreating it on every modification 8 years ago
Leon Krieg 170e723cc7 Handle SDL event 0x304 by doing nothing (#3670) 8 years ago
scrawl eae35af13d Check if the bounding box changed before calling dirtyBound() 8 years ago
scrawl aafff1deb6 Fix memory leak 8 years ago
scrawl cca75499ee Clear the Skeleton's bone cache when a node is added/removed (Fixes #3663) 8 years ago
scrawl c0faeea938 RigGeometry check if mesh has normals (Fixes #3667) 8 years ago
Aussiemon 369272fc70 Handle SDL event 0x302 by doing nothing 8 years ago
mrohrlach f0f78c9d64 Slight adjustments to disintegration fix 8 years ago
mrohrlach 9624d8aade Added new method and variable to track float remainders of disintegration effections 8 years ago
MiroslavR 99bcf47167 Implement NiSphericalCollider (Closes #3644) 8 years ago
scrawl 5297d7b5be Merge pull request #1137 from nikolaykasyanov/osx-structure
[macOS] Move all resources files inside application bundles (fixes #3566)
8 years ago