Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package SimGear for openSUSE:Factory checked in at 2022-04-13 21:05:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/SimGear (Old) and /work/SRC/openSUSE:Factory/.SimGear.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "SimGear" Wed Apr 13 21:05:23 2022 rev:26 rq:969804 version:2020.3.13 Changes: -------- --- /work/SRC/openSUSE:Factory/SimGear/SimGear.changes 2022-02-05 23:23:51.055650670 +0100 +++ /work/SRC/openSUSE:Factory/.SimGear.new.1900/SimGear.changes 2022-04-13 21:06:07.968626197 +0200 @@ -1,0 +2,6 @@ +Tue Apr 12 06:29:10 UTC 2022 - Stefan Br??ns <stefan.bru...@rwth-aachen.de> + +- Update to 2020.3.13 + * https://wiki.flightgear.org/Changelog_2020.3#2020.3.13 + +------------------------------------------------------------------- Old: ---- simgear-2020.3.12.tar.bz2 New: ---- simgear-2020.3.13.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ SimGear.spec ++++++ --- /var/tmp/diff_new_pack.ysExQj/_old 2022-04-13 21:06:08.932627170 +0200 +++ /var/tmp/diff_new_pack.ysExQj/_new 2022-04-13 21:06:08.940627178 +0200 @@ -20,10 +20,10 @@ # in our requirements, i.e. the same version we have built against %define openscenegraph_version %(rpm -qa --nosignature --nodigest libOpenSceneGraph\*-devel | sed 's/.*-devel-\\(.*\\)-.*/\\1/') -%define libname libSimGearCore-2020_3_12 +%define libname libSimGearCore-2020_3_13 %define main_version 2020.3 Name: SimGear -Version: %{main_version}.12 +Version: %{main_version}.13 Release: 0 Summary: Simulator Construction Gear # https://sourceforge.net/p/flightgear/codetickets/1940/ ++++++ simgear-2020.3.12.tar.bz2 -> simgear-2020.3.13.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/debug/ErrorReportingCallback.cxx new/simgear-2020.3.13/simgear/debug/ErrorReportingCallback.cxx --- old/simgear-2020.3.12/simgear/debug/ErrorReportingCallback.cxx 2022-01-31 16:31:54.000000000 +0100 +++ new/simgear-2020.3.13/simgear/debug/ErrorReportingCallback.cxx 2022-03-28 11:02:38.000000000 +0200 @@ -16,6 +16,7 @@ #include <simgear_config.h> #include "ErrorReportingCallback.hxx" +#include "logstream.hxx" #include <simgear/misc/sg_path.hxx> @@ -27,6 +28,31 @@ static ContextCallback static_contextCallback; +string_list static_errorNames = { + "shader/effect", + "loading texture", + "XML/animation load", + "3D model load", + "loading BTG", + "sceanrio load", + "UI dialog load", + "loading Audio/FX", + "Nasal/commnad load of XML", + "aircraft-systems", + "loading input/joystick config", + "load AI/traffic", + "from TerraSync"}; + +string_list static_errorTypeNames = { + "unknown", + "not found", + "out of memory", + "bad header", + "bad data", + "misconfigured", + "disk IO/permissions", + "network IO"}; + void setErrorReportCallback(ErrorReportCallback cb) { static_callback = cb; @@ -53,6 +79,7 @@ void reportFailure(LoadFailure type, ErrorCode code, const std::string& details, sg_location loc) { if (!static_failureCallback) { + SG_LOG(SG_GENERAL, SG_WARN, "Error:" << static_errorTypeNames.at(static_cast<int>(type)) << " from " << static_errorNames.at(static_cast<int>(code)) << "::" << details << "\n\t" << loc.asString()); return; } @@ -62,6 +89,9 @@ void reportFailure(LoadFailure type, ErrorCode code, const std::string& details, const SGPath& path) { if (!static_failureCallback) { + // if no callback is registered, log here instead + SG_LOG(SG_GENERAL, SG_WARN, "Error:" << static_errorTypeNames.at(static_cast<int>(type)) << " from " << static_errorNames.at(static_cast<int>(code)) << "::" << details << "\n\t" << path); + return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/misc/simgear_optional.hxx new/simgear-2020.3.13/simgear/misc/simgear_optional.hxx --- old/simgear-2020.3.12/simgear/misc/simgear_optional.hxx 2022-01-31 16:31:54.000000000 +0100 +++ new/simgear-2020.3.13/simgear/misc/simgear_optional.hxx 2022-03-28 11:02:38.000000000 +0200 @@ -74,6 +74,22 @@ return _value; } + const T& value_or(const T& defaultValue) const + { + if (!_haveValue) { + return defaultValue; + } + return _value; + } + + T& value_or(T& defaultValue) const + { + if (!_haveValue) { + return defaultValue; + } + return _value; + } + T& value() { if (!_haveValue) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/material/Effect.hxx new/simgear-2020.3.13/simgear/scene/material/Effect.hxx --- old/simgear-2020.3.12/simgear/scene/material/Effect.hxx 2022-01-31 16:31:54.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/material/Effect.hxx 2022-03-28 11:02:39.000000000 +0200 @@ -160,7 +160,8 @@ Effect* makeEffect(const std::string& name, bool realizeTechniques, - const SGReaderWriterOptions* options); + const SGReaderWriterOptions* options, + const SGPath& modelPath = SGPath{}); Effect* makeEffect(SGPropertyNode* prop, bool realizeTechniques, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/material/makeEffect.cxx new/simgear-2020.3.13/simgear/scene/material/makeEffect.cxx --- old/simgear-2020.3.12/simgear/scene/material/makeEffect.cxx 2022-01-31 16:31:55.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/material/makeEffect.cxx 2022-03-28 11:02:39.000000000 +0200 @@ -114,7 +114,8 @@ Effect* makeEffect(const string& name, bool realizeTechniques, - const SGReaderWriterOptions* options) + const SGReaderWriterOptions* options, + const SGPath& modelPath) { { OpenThreads::ScopedLock<OpenThreads::ReentrantMutex> lock(effectMutex); @@ -125,8 +126,7 @@ } string effectFileName(name); effectFileName += ".eff"; - string absFileName - = SGModelLib::findDataFile(effectFileName, options); + string absFileName = SGModelLib::findDataFile(effectFileName, options, modelPath); if (absFileName.empty()) { simgear::reportFailure(simgear::LoadFailure::NotFound, simgear::ErrorCode::LoadEffectsShaders, "Couldn't find Effect:" + effectFileName); return nullptr; @@ -197,7 +197,7 @@ Effect* parent = 0; if (inheritProp) { //prop->removeChild("inherits-from"); - parent = makeEffect(inheritProp->getStringValue(), false, options); + parent = makeEffect(inheritProp->getStringValue(), false, options, filePath); if (parent) { Effect::Key key; key.unmerged = prop; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/model/SGReaderWriterXML.cxx new/simgear-2020.3.13/simgear/scene/model/SGReaderWriterXML.cxx --- old/simgear-2020.3.12/simgear/scene/model/SGReaderWriterXML.cxx 2022-01-31 16:31:55.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/model/SGReaderWriterXML.cxx 2022-03-28 11:02:39.000000000 +0200 @@ -559,8 +559,8 @@ // Some material animations (eventually all) are actually effects. makeEffectAnimations(animation_nodes, effect_nodes); { - ref_ptr<Node> modelWithEffects - = instantiateEffects(group.get(), effect_nodes, options.get()); + ref_ptr<Node> modelWithEffects = instantiateEffects(group.get(), effect_nodes, options.get(), + path.dirPath()); group = static_cast<Group*>(modelWithEffects.get()); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/model/model.cxx new/simgear-2020.3.13/simgear/scene/model/model.cxx --- old/simgear-2020.3.12/simgear/scene/model/model.cxx 2022-01-31 16:31:55.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/model/model.cxx 2022-03-28 11:02:39.000000000 +0200 @@ -234,7 +234,7 @@ typedef std::map<string, SGPropertyNode_ptr> EffectMap; using SplicingVisitor::apply; MakeEffectVisitor(const SGReaderWriterOptions* options = 0) - : _options(options) + : _options(options), _modelPath(SGPath{}) { } virtual void apply(osg::Group& node); @@ -246,10 +246,17 @@ _currentEffectParent = effect; } SGPropertyNode* getDefaultEffect() { return _currentEffectParent; } + + void setModelPath(const SGPath& p) + { + _modelPath = p; + } + protected: EffectMap _effectMap; SGPropertyNode_ptr _currentEffectParent; osg::ref_ptr<const SGReaderWriterOptions> _options; + SGPath _modelPath; }; void MakeEffectVisitor::apply(osg::Group& node) @@ -287,7 +294,7 @@ makeParametersFromStateSet(ssRoot, ss); SGPropertyNode_ptr effectRoot = new SGPropertyNode; effect::mergePropertyTrees(effectRoot, ssRoot, _currentEffectParent); - Effect* effect = makeEffect(effectRoot, true, _options.get()); + Effect* effect = makeEffect(effectRoot, true, _options.get(), _modelPath); EffectGeode* eg = dynamic_cast<EffectGeode*>(&geode); if (eg) { eg->setEffect(effect); @@ -332,7 +339,8 @@ ref_ptr<Node> instantiateEffects(osg::Node* modelGroup, PropertyList& effectProps, - const SGReaderWriterOptions* options) + const SGReaderWriterOptions* options, + const SGPath& modelPath) { SGPropertyNode_ptr defaultEffectPropRoot; MakeEffectVisitor visitor(options); @@ -357,13 +365,15 @@ if (!defaultEffectPropRoot) defaultEffectPropRoot = DefaultEffect::instance()->getEffect(); visitor.setDefaultEffect(defaultEffectPropRoot.ptr()); + visitor.setModelPath(modelPath); modelGroup->accept(visitor); osg::NodeList& result = visitor.getResults(); return ref_ptr<Node>(result[0].get()); } ref_ptr<Node> instantiateMaterialEffects(osg::Node* modelGroup, - const SGReaderWriterOptions* options) + const SGReaderWriterOptions* options, + const SGPath& modelPath) { SGPropertyNode_ptr effect; @@ -390,7 +400,7 @@ effect->addChild("default")->setBoolValue(true); effectProps.push_back(effect); - return instantiateEffects(modelGroup, effectProps, options); + return instantiateEffects(modelGroup, effectProps, options, modelPath); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/model/model.hxx new/simgear-2020.3.13/simgear/scene/model/model.hxx --- old/simgear-2020.3.12/simgear/scene/model/model.hxx 2022-01-31 16:31:55.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/model/model.hxx 2022-03-28 11:02:39.000000000 +0200 @@ -102,7 +102,8 @@ osg::ref_ptr<osg::Node> instantiateEffects(osg::Node* model, PropertyList& effectProps, - const SGReaderWriterOptions* options); + const SGReaderWriterOptions* options, + const SGPath& currentDir = SGPath{}); /** * Apply a set of material-defined effects to a model @@ -112,9 +113,10 @@ * * returns a copy if any nodes are changed */ - osg::ref_ptr<osg::Node> - instantiateMaterialEffects(osg::Node* model, - const SGReaderWriterOptions* options); +osg::ref_ptr<osg::Node> +instantiateMaterialEffects(osg::Node* model, + const SGReaderWriterOptions* options, + const SGPath& modelPath = SGPath{}); /** * Transform an OSG subgraph by substituting the Effects and @@ -127,10 +129,11 @@ inline osg::ref_ptr<osg::Node> instantiateEffects(osg::Node* model, - const SGReaderWriterOptions* options) + const SGReaderWriterOptions* options, + const SGPath& currentDir = SGPath{}) { PropertyList effectProps; - return instantiateEffects(model, effectProps, options); + return instantiateEffects(model, effectProps, options, currentDir); } } #endif // __MODEL_HXX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/tgdb/SGNodeTriangles.hxx new/simgear-2020.3.13/simgear/scene/tgdb/SGNodeTriangles.hxx --- old/simgear-2020.3.12/simgear/scene/tgdb/SGNodeTriangles.hxx 2022-01-31 16:31:55.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/tgdb/SGNodeTriangles.hxx 2022-03-28 11:02:39.000000000 +0200 @@ -267,12 +267,12 @@ SGVec2f texCoord = a*t0 + b*t1 + c*t2; // Check this random point against the object mask - // red channel. + // blue channel. osg::Image* img = object_mask->getImage(); unsigned int x = (int) (img->s() * texCoord.x()) % img->s(); unsigned int y = (int) (img->t() * texCoord.y()) % img->t(); - if (mt_rand(&seed) < img->getColor(x, y).r()) { + if (mt_rand(&seed) < img->getColor(x, y).b()) { points.push_back(randomPoint); } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear/scene/tgdb/SGTexturedTriangleBin.hxx new/simgear-2020.3.13/simgear/scene/tgdb/SGTexturedTriangleBin.hxx --- old/simgear-2020.3.12/simgear/scene/tgdb/SGTexturedTriangleBin.hxx 2022-01-31 16:31:55.000000000 +0100 +++ new/simgear-2020.3.13/simgear/scene/tgdb/SGTexturedTriangleBin.hxx 2022-03-28 11:02:39.000000000 +0200 @@ -192,12 +192,12 @@ SGVec2f texCoord = a*t0 + b*t1 + c*t2; // Check this random point against the object mask - // red channel. + // blue channel. osg::Image* img = object_mask->getImage(); unsigned int x = (int) (img->s() * texCoord.x()) % img->s(); unsigned int y = (int) (img->t() * texCoord.y()) % img->t(); - if (mt_rand(&seed) < img->getColor(x, y).r()) { + if (mt_rand(&seed) < img->getColor(x, y).b()) { points.push_back(randomPoint); } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simgear-2020.3.12/simgear-version new/simgear-2020.3.13/simgear-version --- old/simgear-2020.3.12/simgear-version 2022-01-31 16:31:54.000000000 +0100 +++ new/simgear-2020.3.13/simgear-version 2022-03-28 11:02:38.000000000 +0200 @@ -1 +1 @@ -2020.3.12 +2020.3.13