X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flight.cpp;h=4b2e289c6c5d7c1b21ebb7f749a0a963523412e4;hb=8e9d872c2ba8dc633d29a673ba93adf38d262a5c;hp=26cc896358d46f4a7de30cd0bd40e4d811f27ad8;hpb=b617c5d7b5283ad260a77f01e42e6170cabbc03d;p=libs%2Fgl.git diff --git a/source/light.cpp b/source/light.cpp index 26cc8963..4b2e289c 100644 --- a/source/light.cpp +++ b/source/light.cpp @@ -1,11 +1,4 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - -#include "except.h" +#include #include "light.h" #include "misc.h" @@ -14,6 +7,9 @@ using namespace std; namespace Msp { namespace GL { +unsigned Light::current_unit = 0; +vector Light::current_lights(1); + Light::Light(): ambient(0), diffuse(1), @@ -101,7 +97,7 @@ void Light::activate(unsigned i) static unsigned max_lights = get_i(GL_MAX_LIGHTS); if(i>=max_lights) - throw InvalidParameterValue("Light unit index out of range"); + throw out_of_range("Light::activate"); if(i>=current_lights.size()) current_lights.resize(i+1); @@ -118,8 +114,11 @@ void Light::unbind() } } -unsigned Light::current_unit = 0; -vector Light::current_lights(1); +void Light::unbind_from(unsigned i) +{ + activate(i); + unbind(); +} } // namespace GL } // namespace Msp