+++ /dev/null
-#include <msp/core/algorithm.h>
-#include "clipping.h"
-#include "clipplane.h"
-#include "deviceinfo.h"
-#include "error.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GL {
-
-void Clipping::attach(const ClipPlane &p)
-{
- if(find_member(planes, &p, &AttachedPlane::plane)!=planes.end())
- return;
- if(planes.size()>=DeviceInfo::get_global().limits.max_clip_planes)
- throw invalid_operation("Clipping::attach");
-
- planes.push_back(&p);
-}
-
-void Clipping::detach(const ClipPlane &p)
-{
- auto i = find_member(planes, &p, &AttachedPlane::plane);
- if(i!=planes.end())
- planes.erase(i);
-}
-
-const ProgramData &Clipping::get_shader_data() const
-{
- for(unsigned i=0; i<planes.size(); ++i)
- if(planes[i].plane->get_generation()!=planes[i].generation)
- {
- planes[i].plane->update_shader_data(shdata, i);
- planes[i].generation = planes[i].plane->get_generation();
- }
-
- return shdata;
-}
-
-} // namespace GL
-} // namespace Msp