surface light_modification::operator()(const surface& src) const { if(src == NULL) { return NULL; } //light_surface wants a neutral surface having same dimensions surface nsurf; if(surf_->w != src->w || surf_->h != src->h) nsurf = scale_surface(surf_, src->w, src->h, false); else nsurf = make_neutral_surface(surf_); return light_surface(src, nsurf);; }
surface light_function::operator()(const surface& src) const { return light_surface(src, surf_);; }