]> git.tdb.fi Git - libs/gl.git/blobdiff - source/pipeline.cpp
Use maputils functions
[libs/gl.git] / source / pipeline.cpp
index de98b2d383283d4822d1ed7e9b684ac60ed98e4b..eca9a49a3c22dfca97cfa5119da4e2d53710ec7a 100644 (file)
@@ -1,7 +1,7 @@
+#include <msp/core/maputils.h>
 #include "blend.h"
 #include "camera.h"
 #include "effect.h"
-#include "except.h"
 #include "framebuffer.h"
 #include "lighting.h"
 #include "pipeline.h"
@@ -58,28 +58,19 @@ void Pipeline::set_camera(const Camera *c)
 
 PipelinePass &Pipeline::add_pass(const Tag &tag)
 {
-       if(passes.count(tag))
-               throw KeyError("Pass already exists");
-
-       PipelinePass &pass = passes[tag];
+       PipelinePass &pass = insert_unique(passes, tag, PipelinePass())->second;
        pass_order.push_back(tag);
        return pass;
 }
 
 PipelinePass &Pipeline::get_pass(const Tag &tag)
 {
-       PassMap::iterator i = passes.find(tag);
-       if(i==passes.end())
-               throw KeyError("Unknown pass");
-       return i->second;
+       return get_item(passes, tag);
 }
 
 const PipelinePass &Pipeline::get_pass(const Tag &tag) const
 {
-       PassMap::const_iterator i = passes.find(tag);
-       if(i==passes.end())
-               throw KeyError("Unknown pass");
-       return i->second;
+       return get_item(passes, tag);
 }
 
 void Pipeline::add_renderable(const Renderable &r)