f8b5e6ab81
We now default to not calling parent nodes' listeners when a node's value changes. This avoid overheads introduced by recent addition of locking - walking up the parent nodes needs to lock/unlock at each step, and was previously happening whenever any node in the entire tree had its value changed, causing noticable slowdown. Node creation/removal still calls parent nodes' listeners as before. If a node has new attribute VALUE_CHANGED_UP set, we do call its parent node's listeners. New SGPropertyNode::Attribute's VALUE_CHANGED_UP and VALUE_CHANGED_DOWN: VALUE_CHANGED_UP: if set, when fireValueChanged() is called we also call our parent node's fireValueChanged(). VALUE_CHANGED_DOWN: if set, new and existing child nodes have their VALUE_CHANGED_UP and VALUE_CHANGED_DOWN attributes set. Once set, these attributes cannot be cleared (because to correctly handle this would require reference counting). SGPropertyLockControl(): added parent_listeners arg. If true, we always call parent node's fireValueChanged() when a node value changes; this restores previous property system behaviour. Default is false. Extra overall timing diagnostics. |
||
---|---|---|
3rdparty | ||
CMakeModules | ||
simgear | ||
.gitignore | ||
AUTHORS | ||
ChangeLog | ||
CMakeLists.txt | ||
COPYING | ||
Doxyfile | ||
DoxygenMain.cxx | ||
INSTALL | ||
NEWS | ||
README | ||
README.cmake | ||
README.OSG | ||
README.sound | ||
README.zlib | ||
simgear-version | ||
SimGearConfig.cmake.in | ||
Thanks |
SimGear - Simulator Construction Tools ====================================== http://www.flightgear.org SimGear is a set of open-source libraries designed to be used as building blocks for quickly assembling 3d simulations, games, and visualization applications. SimGear is developed by the FlightGear project and also provides the base for the FlightGear Flight Simulator. Source code for SimGear is released under the GNU Library General Public License (LGPL) - see COPYING for license details. See INSTALL file for help on building SimGear.