From 9fff9eb832db3b64416ae49bbdc826f33e3ceb19 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Fri, 17 Oct 2014 22:28:51 +0300 Subject: [PATCH] Only check against number of light units when binding Lighting Feeding lights to shaders through ProgramData is not subject to GL_MAX_LIGHTS, it makes sense to remove that limit from attaching them. --- source/lighting.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/lighting.cpp b/source/lighting.cpp index 2ba1edc5..7f662c72 100644 --- a/source/lighting.cpp +++ b/source/lighting.cpp @@ -1,4 +1,5 @@ #include +#include "error.h" #include "light.h" #include "lighting.h" #include "lightunit.h" @@ -38,9 +39,6 @@ void Lighting::set_horizon_angle(const Geometry::Angle &a) void Lighting::attach(unsigned i, const Light &l) { - if(i>=LightUnit::get_n_units()) - throw out_of_range("Lighting::attach"); - if(i>=lights.size()) lights.resize(i+1); @@ -73,6 +71,9 @@ void Lighting::update_shader_data(ProgramData &shdata, const Matrix &view_matrix void Lighting::bind() const { + if(lights.size()>LightUnit::get_n_units()) + throw invalid_operation("Lighting::bind"); + if(!set_current(this)) return; -- 2.43.0