public static ShaderLight[] GetLights( Effect fx ) { EffectHandle lights = fx.GetParameterBySemantic( null, "LIGHTS" ); int count = fx.GetParameterDescription( lights ).Elements; ShaderLight[] ret = new ShaderLight[count]; for( int i = 0; i < ret.Length; i++ ) ret[i] = new ShaderLight( fx, fx.GetParameterElement( lights, i ) ); return ret; }