public static object GetValue(this EffectParameter parameter) { if (parameter.ParameterClass == EffectParameterClass.Object) { if (parameter.ParameterType == EffectParameterType.Texture2D) { return(parameter.GetValueTexture2D()); } if (parameter.ParameterType == EffectParameterType.Texture3D) { return(parameter.GetValueTexture3D()); } if (parameter.ParameterType == EffectParameterType.TextureCube) { return(parameter.GetValueTextureCube()); } } if (parameter.ParameterType == EffectParameterType.Int32) { return(parameter.GetValueInt32()); } if (parameter.ParameterClass == EffectParameterClass.Matrix) { return(parameter.GetValueMatrix()); } if (parameter.ParameterClass == EffectParameterClass.Vector) { if (parameter.ColumnCount == 1) { return(parameter.GetValueSingle()); } if (parameter.ColumnCount == 2) { return(parameter.GetValueVector2()); } if (parameter.ColumnCount == 3) { return(parameter.GetValueVector3()); } if (parameter.ColumnCount == 4) { return(parameter.GetValueVector4()); } } throw new NotSupportedException(); }