Removed ambiguous OpenGL overloads, because they confuse languages that don't distinguish between pass-by-reference and pass-by-value in the call-site (e.g. VB.Net). This affects functions that can take a single parameter either by reference or by value.

This commit is contained in:
the_fiddler 2009-05-21 23:34:20 +00:00
parent 6ef18cc117
commit b5f08288c6
3 changed files with 10 additions and 3550 deletions

View file

@ -357,6 +357,7 @@ namespace Bind.Structures
{ {
foreach (List<Function> wrappers in Function.Wrappers.Values) foreach (List<Function> wrappers in Function.Wrappers.Values)
{ {
restart:
for (int i = 0; i < wrappers.Count; i++) for (int i = 0; i < wrappers.Count; i++)
{ {
for (int j = i + 1; j < wrappers.Count; j++) for (int j = i + 1; j < wrappers.Count; j++)
@ -382,9 +383,14 @@ namespace Bind.Structures
if (k == wrappers[i].Parameters.Count) if (k == wrappers[i].Parameters.Count)
{ {
if (function_i_is_problematic) if (function_i_is_problematic)
wrappers[i].CLSCompliant = false; wrappers.RemoveAt(i);
//wrappers[i].CLSCompliant = false;
if (function_j_is_problematic) if (function_j_is_problematic)
wrappers[j].CLSCompliant = false; wrappers.RemoveAt(j);
//wrappers[j].CLSCompliant = false;
if (function_i_is_problematic || function_j_is_problematic)
goto restart;
} }
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -661,7 +661,7 @@ namespace OpenTK.Graphics
public static void Material(MaterialFace face, MaterialParameter pname, Vector4 @params) public static void Material(MaterialFace face, MaterialParameter pname, Vector4 @params)
{ {
Material(face, pname, ref @params.X); unsafe { Material(face, pname, (float*)&@params.X); }
} }
public static void Material(MaterialFace face, MaterialParameter pname, Color4 @params) public static void Material(MaterialFace face, MaterialParameter pname, Color4 @params)
@ -675,7 +675,7 @@ namespace OpenTK.Graphics
public static void Light(LightName name, LightParameter pname, Vector4 @params) public static void Light(LightName name, LightParameter pname, Vector4 @params)
{ {
GL.Light(name, pname, ref @params.X); unsafe { GL.Light(name, pname, (float*)&@params.X); }
} }
public static void Light(LightName name, LightParameter pname, Color4 @params) public static void Light(LightName name, LightParameter pname, Color4 @params)