]> git.tdb.fi Git - libs/gl.git/commitdiff
Add a function to query if a Technique has any shaders
authorMikko Rasa <tdb@tdb.fi>
Wed, 15 Aug 2012 19:31:03 +0000 (22:31 +0300)
committerMikko Rasa <tdb@tdb.fi>
Wed, 15 Aug 2012 19:31:03 +0000 (22:31 +0300)
Also make PassMap public since it's exposed through get_passes

source/technique.cpp
source/technique.h

index fcb2ffe58358c1ca65d57498a8050fb2c8e27cb6..aa27d99cc7857118888fced1d59e1647347c2abf 100644 (file)
@@ -28,6 +28,14 @@ const RenderPass &Technique::get_pass(const GL::Tag &tag) const
        return get_item(passes, tag);
 }
 
+bool Technique::has_shaders() const
+{
+       for(PassMap::const_iterator i=passes.begin(); i!=passes.end(); ++i)
+               if(i->second.get_shader_program())
+                       return true;
+       return false;
+}
+
 
 Technique::Loader::Loader(Technique &t):
        DataFile::CollectionObjectLoader<Technique>(t, 0)
index f908fe868403c5ae5750e14505e8cbe231407ca8..ad988c2763c412f35d6d471151e5e97a60ca7cbe 100644 (file)
@@ -37,8 +37,10 @@ private:
                void texture(const std::string &, const std::string &);
        };
 
+public:
        typedef std::map<Tag, RenderPass> PassMap;
 
+private:
        PassMap passes;
 
 public:
@@ -46,6 +48,7 @@ public:
        bool has_pass(const GL::Tag &) const;
        const RenderPass &get_pass(const GL::Tag &) const;
        const PassMap &get_passes() const { return passes; }
+       bool has_shaders() const;
 };
 
 } // namespace GL