Implemented GL.SupportsFunction(MethodInfo).

This commit is contained in:
the_fiddler 2009-02-28 20:00:34 +00:00
parent 132c2ab856
commit 89bfdd4568

View file

@ -335,39 +335,24 @@ namespace OpenTK.Graphics
#endregion #endregion
#region static bool SupportsFunction(Type function) #region static bool SupportsFunction(MethodInfo function)
/// <summary> /// <summary>
/// Checks if a given OpenGL function is supported by the current context /// Checks if a given OpenGL function is supported by the current context.
/// </summary> /// </summary>
/// <param name="method">The System.Reflection.MethodInfo of the OpenGL function.</param> /// <param name="method">The System.Reflection.MethodInfo for the OpenGL function.</param>
/// <returns>True if the function is supported, false otherwise</returns> /// <returns>True if the function is supported, false otherwise.</returns>
static bool SupportsFunction(MethodInfo method) static bool SupportsFunction(MethodInfo function)
{ {
throw new NotImplementedException(); if (function == null)
#if false throw new ArgumentNullException("function");
lock (gl_lock)
{
if (function == null)
throw new ArgumentNullException("function");
sb.Remove(0, sb.Length); AutoGeneratedAttribute[] attr = (AutoGeneratedAttribute[])
if (!function.Name.StartsWith("gl")) function.GetCustomAttributes(typeof(AutoGeneratedAttribute), false);
sb.Append("gl"); if (attr.Length == 0)
sb.Append(function);
//if (!function.EndsWith(extension))
// sb.Append(extension);
FieldInfo f = delegatesClass.GetField(sb.ToString(), BindingFlags.Static | BindingFlags.NonPublic);
if (f == null)
return false;
return f.GetValue(null) != null;
return false; return false;
}
#endif return SupportsFunction(attr[0].EntryPoint);
} }
#endregion #endregion