X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fclipping.cpp;h=6508ecf7f695306df3e76cf4e7f03689e00eee8b;hp=487eeca638cbcfd7a33e1c04e086b124c47b7cbd;hb=81e0e39fefd8f50ae2367fe821d58af6273bcea2;hpb=2a27f2d40ef2359e347c838887101904789941d2 diff --git a/source/clipping.cpp b/source/clipping.cpp index 487eeca6..6508ecf7 100644 --- a/source/clipping.cpp +++ b/source/clipping.cpp @@ -1,3 +1,4 @@ +#include #include #include "clipping.h" #include "clipplane.h" @@ -55,11 +56,15 @@ void Clipping::update_shader_data(ProgramData &shdata, const Matrix &view_matrix void Clipping::bind(bool legacy) const { + static Require _req(MSP_clipping); if(legacy) - static Require _req(MSP_legacy_features); + static Require _req2(MSP_legacy_features); + + if(legacy!=bound_with_legacy) + unbind(); const Clipping *old = current(); - if(!set_current(this) && !(legacy && !bound_with_legacy)) + if(!set_current(this)) return; bound_with_legacy = legacy;