X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpipeline.cpp;h=d7e175de7185fe39fcf890c2c8eeb89c8986346a;hb=4d3d1511616a0ad4a91f8a068b49faf2b450c298;hp=c6260f0ee73f15d060436ec99edf3d71aa57a3bf;hpb=0119ca4f792dc761e5248b76de71f2844c0e3997;p=libs%2Fgl.git diff --git a/source/pipeline.cpp b/source/pipeline.cpp index c6260f0e..d7e175de 100644 --- a/source/pipeline.cpp +++ b/source/pipeline.cpp @@ -49,8 +49,17 @@ void Pipeline::set_multisample(unsigned s) if(s==samples) return; + unsigned old_samples = samples; samples = s; - create_targets(1); + try + { + create_targets(1); + } + catch(...) + { + samples = old_samples; + throw; + } } void Pipeline::set_camera(const Camera *c) @@ -153,7 +162,7 @@ void Pipeline::render(Renderer &renderer, const Tag &tag) const { Bind bind_depth_test(i->get_depth_test()); Bind bind_blend(i->get_blend()); - Bind bind_lighting(i->get_lighting()); + renderer.set_lighting(i->get_lighting()); for(vector::const_iterator j=renderables.begin(); j!=renderables.end(); ++j) if(j->passes.empty() || j->passes.count(i->get_tag()))