]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/material/EffectBuilder.hxx
Improved tile cache priority scheme.
[simgear.git] / simgear / scene / material / EffectBuilder.hxx
index 54e959a14b9ea3008b5d1c96087a6918ff4df4a7..c1d48405b04e1433c3c5c8cf25b84dfe1971e14b 100644 (file)
@@ -121,13 +121,20 @@ struct EffectNameValue
 template<typename FromType,typename ToType>
 struct bidirectional_map
 {
+#if _MSC_VER >= 1600
+    struct value_type {
+        FromType first;
+        ToType second;
+        value_type(FromType f, ToType s) : first(f),second(s){}
+    };
+#else
     typedef std::pair<FromType,ToType> value_type;
+#endif
 
     /* A bidirectional map can be simulated as a multi_index_container
      * of pairs of (FromType,ToType) with two unique indices, one
      * for each member of the pair.
      */
-
     typedef multi_index_container<
         value_type,
         indexed_by<
@@ -314,7 +321,7 @@ getVectorProperties(const SGPropertyNode* prop,
         if (parentName[parentName.size() - 1] != '/')
             parentName.append("/");
         NameItr itr = defaultNames;
-        for (int i = 0; i < vecSize; ++i, ++itr)
+        for (size_t i = 0; i < vecSize; ++i, ++itr)
             result.push_back(parentName + *itr);
     } else if (useProps.size() == vecSize) {
         string parentName = useProps[0]->getStringValue();
@@ -594,7 +601,7 @@ initFromParameters(Effect* effect, const SGPropertyNode* prop, ObjType* obj,
     if (valProp->nChildren() == 0) {
         setter(obj, valProp->getValue<OSGParamType>());
     } else {
-        std::string propName = getGlobalProperty(prop, options);
+        std::string propName = getGlobalProperty(valProp, options);
         ScalarChangeListener<OSGParamType, ObjType, F>* listener
             = new ScalarChangeListener<OSGParamType, ObjType, F>(obj, setter,
                                                                  propName);