+#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"
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)