+#include <msp/gl/extensions/msp_clipping.h>
#include <msp/gl/extensions/msp_legacy_features.h>
#include "clipping.h"
#include "clipplane.h"
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))
void Clipping::unbind()
{
+ const Clipping *old = current();
+ if(!set_current(0))
+ return;
+
+ if(bound_with_legacy)
+ {
+ for(unsigned i=0; i<old->planes.size(); ++i)
+ if(old->planes[i])
+ ClipPlane::unbind_from(i);
+ }
+ else
+ {
+ for(unsigned i=0; i<old->planes.size(); ++i)
+ if(old->planes[i])
+ disable(GL_CLIP_PLANE0+i);
+ }
}
} // namespace GL