]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/material/Technique.hxx
Add bool and int uniform types for shaders, and vertex-program-two-sided
[simgear.git] / simgear / scene / material / Technique.hxx
index 9ada783c1192fa7cdcec6c5aa3a6fe4c33a41ae7..b2ce020f07166d26f0d536fbff6c6f66c352f2f4 100644 (file)
@@ -97,6 +97,7 @@ public:
                             const simgear::expression::BindingLayout&);
     void setGLExtensionsPred(float glVersion,
                              const std::vector<std::string>& extensions);
+    void refreshValidity();
 protected:
     // Validity of technique in a graphics context.
     struct ContextInfo : public osg::Referenced
@@ -105,7 +106,8 @@ protected:
         ContextInfo(const ContextInfo& rhs) : valid(rhs.valid()) {}
         ContextInfo& operator=(const ContextInfo& rhs)
         {
-            valid = rhs.valid();
+            valid = rhs.valid;
+            return *this;
         }
         Swappable<Status> valid;
     };
@@ -116,5 +118,17 @@ protected:
     SGSharedPtr<SGExpressionb> _validExpression;
     int _contextIdLocation;
 };
+
+class TechniquePredParser : public expression::ExpressionParser
+{
+public:
+    void setTechnique(Technique* tniq) { _tniq = tniq; }
+    Technique* getTechnique() { return _tniq.get(); }
+//    void setEffect(Effect* effect) { _effect = effect; }
+//    Effect* getEffect() { return _effect.get(); }
+protected:
+    osg::ref_ptr<Technique> _tniq;
+    // osg::ref_ptr<Effect> _effect;
+};
 }
 #endif