Implemented support for <overload> element

The <overload> element simplifies the addition of overloads for
backwards compatibility. It is defined similar to the <replace>
element, but instead of replacing the parameters of a function
in-place, it adds a new overload and modifies the overload instead.
This commit is contained in:
Stefanos A 2013-11-05 08:55:52 +01:00
parent 25b9939263
commit 2511cb1086
14 changed files with 2894 additions and 475 deletions

View file

@ -72,9 +72,12 @@ namespace Bind
var nav = new XPathDocument(Overrides).CreateNavigator();
foreach (var version in apiversion.Split('|'))
{
foreach (var overloads in delegates.Values)
// Translate each delegate:
// 1st using the <replace> elements in overrides.xml
// 2nd using the hardcoded rules in FuncProcessor (e.g. char* -> string)
foreach (var signatures in delegates.Values)
{
foreach (var d in overloads)
foreach (var d in signatures)
{
TranslateExtension(d);
TranslateReturnType(enum_processor, nav, d, enums, apiname, version);
@ -82,6 +85,25 @@ namespace Bind
TranslateAttributes(nav, d, enums, apiname, version);
}
}
// Create overloads for backwards compatibility,
// by resolving <overload> elements
var overload_list = new List<Delegate>();
foreach (var d in delegates.Values.Select(v => v.First()))
{
var overload_element = GetFuncOverload(nav, d, apiname, apiversion);
if (overload_element != null)
{
var overload = new Delegate(d);
ApplyParameterReplacement(overload, overload_element);
ApplyReturnTypeReplacement(overload, overload_element);
overload_list.Add(overload);
}
}
foreach (var overload in overload_list)
{
Utilities.Merge(delegates, overload);
}
}
Console.WriteLine("Generating wrappers.");
@ -96,13 +118,13 @@ namespace Bind
return wrappers;
}
public static string GetOverridesPath(string apiname, string apiversion, string function, string extension)
{
if (function == null)
throw new ArgumentNullException("function");
#region Private Members
static string GetPath(string apipath, string apiname, string apiversion, string function, string extension)
{
var path = new StringBuilder();
path.Append("/signatures/replace");
path.Append("/signatures/");
path.Append(apipath);
if (!String.IsNullOrEmpty(apiname) && !String.IsNullOrEmpty(apiversion))
{
path.Append(String.Format(
@ -120,6 +142,8 @@ namespace Bind
path.Append(String.Format("[contains(concat('|', @version, '|'), '|{0}|')]", apiversion));
}
if (function != null)
{
if (extension != null)
{
// match an override that has this specific extension
@ -137,11 +161,20 @@ namespace Bind
"/function[contains(concat('|', @name, '|'), '|{0}|')]",
function));
}
}
return path.ToString();
}
#region Private Members
static string GetOverloadsPath(string apiname, string apiversion, string function, string extension)
{
return GetPath("overload", apiname, apiversion, function, extension);
}
static string GetOverridesPath(string apiname, string apiversion, string function, string extension)
{
return GetPath("replace", apiname, apiversion, function, extension);
}
void TranslateType(Bind.Structures.Type type, EnumProcessor enum_processor, XPathNavigator overrides, EnumCollection enums,
string category, string apiname)
@ -308,6 +341,19 @@ namespace Bind
return trimmed_name;
}
static XPathNavigator GetFuncOverload(XPathNavigator nav, Delegate d, string apiname, string apiversion)
{
string ext = d.Extension;
string trimmed_name = GetTrimmedName(d);
string extensionless_name = GetTrimmedExtension(d.Name, ext);
var function_overload =
nav.SelectSingleNode(GetOverloadsPath(apiname, apiversion, d.Name, ext)) ??
nav.SelectSingleNode(GetOverloadsPath(apiname, apiversion, extensionless_name, ext)) ??
nav.SelectSingleNode(GetOverloadsPath(apiname, apiversion, trimmed_name, ext));
return function_overload;
}
static XPathNavigator GetFuncOverride(XPathNavigator nav, Delegate d, string apiname, string apiversion)
{
string ext = d.Extension;
@ -326,6 +372,52 @@ namespace Bind
f.TrimmedName = GetTrimmedName(f);
}
static void ApplyParameterReplacement(Delegate d, XPathNavigator function_override)
{
if (function_override != null)
{
for (int i = 0; i < d.Parameters.Count; i++)
{
XPathNavigator param_override = function_override.SelectSingleNode(String.Format("param[@name='{0}']", d.Parameters[i].RawName));
if (param_override != null)
{
foreach (XPathNavigator node in param_override.SelectChildren(XPathNodeType.Element))
{
switch (node.Name)
{
case "type":
d.Parameters[i].CurrentType = (string)node.TypedValue;
break;
case "name":
d.Parameters[i].Name = (string)node.TypedValue;
break;
case "flow":
d.Parameters[i].Flow = Parameter.GetFlowDirection((string)node.TypedValue);
break;
case "count":
int count;
if (Int32.TryParse(node.Value, out count))
d.Parameters[i].ElementCount = count;
break;
}
}
}
}
}
}
static void ApplyReturnTypeReplacement(Delegate d, XPathNavigator function_override)
{
if (function_override != null)
{
XPathNavigator return_override = function_override.SelectSingleNode("returns");
if (return_override != null)
{
d.ReturnType.CurrentType = return_override.Value;
}
}
}
// Translates the opengl return type to the equivalent C# type.
//
// First, we use the official typemap (gl.tm) to get the correct type.
@ -339,15 +431,7 @@ namespace Bind
EnumCollection enums, string apiname, string apiversion)
{
var function_override = GetFuncOverride(nav, d, apiname, apiversion);
if (function_override != null)
{
XPathNavigator return_override = function_override.SelectSingleNode("returns");
if (return_override != null)
{
d.ReturnType.CurrentType = return_override.Value;
}
}
ApplyReturnTypeReplacement(d, function_override);
TranslateType(d.ReturnType, enum_processor, nav, enums, d.Category, apiname);
@ -396,44 +480,15 @@ namespace Bind
return f;
}
void TranslateParameters(EnumProcessor enum_processor,
XPathNavigator nav, Delegate d, EnumCollection enums,
string apiname, string apiversion)
{
var function_override = GetFuncOverride(nav, d, apiname, apiversion);
ApplyParameterReplacement(d, function_override);
for (int i = 0; i < d.Parameters.Count; i++)
{
if (function_override != null)
{
XPathNavigator param_override = function_override.SelectSingleNode(
String.Format("param[@name='{0}']", d.Parameters[i].RawName));
if (param_override != null)
{
foreach (XPathNavigator node in param_override.SelectChildren(XPathNodeType.Element))
{
switch (node.Name)
{
case "type":
d.Parameters[i].CurrentType = (string)node.TypedValue;
break;
case "name":
d.Parameters[i].Name = (string)node.TypedValue;
break;
case "flow":
d.Parameters[i].Flow = Parameter.GetFlowDirection((string)node.TypedValue);
break;
case "count":
int count;
if (Int32.TryParse(node.Value, out count))
d.Parameters[i].ElementCount = count;
break;
}
}
}
}
TranslateParameter(d.Parameters[i], enum_processor, nav, enums, d.Category, apiname);
if (d.Parameters[i].CurrentType == "UInt16" && d.Name.Contains("LineStipple"))
d.Parameters[i].WrapperType = WrapperTypes.UncheckedParameter;

View file

@ -1626,99 +1626,38 @@
</replace>
<add name="gl">
<overload name="gl">
<!-- Khronos renamed a few enum types between GL 4.3 and GL4.4 -->
<!-- PrimitiveType <=> BeginMode overloads for backwards compatibility -->
<function name="Begin" category="VERSION_1_0" extension="Core" version="1.0" deprecated="3.2">
<param name="mode" type="BeginMode" flow="in" />
<returns type="void" />
<function name="Begin">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawArrays" category="VERSION_1_1" extension="Core" version="1.1">
<param name="mode" type="BeginMode" flow="in" />
<param name="first" type="GLint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<returns type="void" />
<function name="DrawArrays">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawArraysEXT" category="EXT_vertex_array" extension="EXT">
<param name="mode" type="BeginMode" flow="in" />
<param name="first" type="GLint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<returns type="void" />
<function name="DrawElements">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawElements" category="VERSION_1_1" extension="Core" version="1.1">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<returns type="void" />
<function name="DrawElementsBaseVertex">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawElementsBaseVertex" category="VERSION_3_2|ARB_draw_elements_base_vertex" extension="Core" version="3.2">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<param name="basevertex" type="GLint" flow="in" />
<returns type="void" />
<function name="DrawElementsInstanced">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawElementsInstanced" category="VERSION_3_1" extension="Core" version="3.1">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<param name="instancecount" type="GLsizei" flow="in" />
<returns type="void" />
<function name="DrawElementsInstancedBaseVertex">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawElementsInstancedBaseVertex" category="VERSION_3_2|ARB_draw_elements_base_vertex" extension="Core" version="3.2">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<param name="instancecount" type="GLsizei" flow="in" />
<param name="basevertex" type="GLint" flow="in" />
<returns type="void" />
<function name="DrawRangeElements">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawRangeElements" category="VERSION_1_2" extension="Core" version="1.2">
<param name="mode" type="BeginMode" flow="in" />
<param name="start" type="GLuint" flow="in" />
<param name="end" type="GLuint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<returns type="void" />
<function name="DrawRangeElementsBaseVertex">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawRangeElementsBaseVertex" category="VERSION_3_2|ARB_draw_elements_base_vertex" extension="Core" version="3.2">
<param name="mode" type="BeginMode" flow="in" />
<param name="start" type="GLuint" flow="in" />
<param name="end" type="GLuint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<param name="basevertex" type="GLint" flow="in" />
<returns type="void" />
<function name="MultiDrawArrays">
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawRangeElementsEXT" category="EXT_draw_range_elements" extension="EXT">
<param name="mode" type="BeginMode" flow="in" />
<param name="start" type="GLuint" flow="in" />
<param name="end" type="GLuint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<returns type="void" />
</function>
<function name="MultiDrawArrays" category="VERSION_1_4" extension="Core" version="1.4">
<param name="mode" type="BeginMode" flow="in" />
<param name="first" type="GLint *" flow="in" count="COMPSIZE(count)" />
<param name="count" type="GLsizei *" flow="in" count="COMPSIZE(drawcount)" />
<param name="drawcount" type="GLsizei" flow="in" />
<returns type="void" />
</function>
<function name="MultiDrawElements" category="VERSION_1_4" extension="Core" version="1.4">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei *" flow="in" count="COMPSIZE(drawcount)" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void **" flow="in" count="COMPSIZE(drawcount)" />
<param name="drawcount" type="GLsizei" flow="in" />
<returns type="void" />
<function name="MultiDrawElements">
<param name="mode"><type>BeginMode</type></param>
</function>
<!--
<function name="TexImage1D" category="VERSION_1_0" extension="Core" version="1.0">
@ -1759,7 +1698,7 @@
</function>
-->
</add>
</overload>
<add name="gl|glcore">
<enum name="ActiveAttribType">
@ -4124,22 +4063,15 @@
</add>
<!--- gles1 -->
<add name="gles1">
<overload name="gles1">
<!-- PrimtiveType <=> BeginMode overloads for backwards compatibility -->
<function name="DrawArrays" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
<param name="mode" type="BeginMode" flow="in" />
<param name="first" type="GLint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<returns type="void" />
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawElements" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<returns type="void" />
<param name="mode"><type>BeginMode</type></param>
</function>
</add>
</overload>
<add name="gles1">
<enum name="BeginMode">
@ -4443,38 +4375,23 @@
</replace>
<add name="gles2" version="2.0">
<overload name="gles2" version="2.0">
<!-- PrimtiveType <=> BeginMode overloads for backwards compatibility -->
<function name="DrawArrays" category="ES_VERSION_2_0" extension="Core" version="2.0">
<param name="mode" type="BeginMode" flow="in" />
<param name="first" type="GLint" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<returns type="void" />
<param name="mode"><type>BeginMode</type></param>
</function>
<function name="DrawElements" category="ES_VERSION_2_0" extension="Core" version="2.0">
<param name="mode" type="BeginMode" flow="in" />
<param name="count" type="GLsizei" flow="in" />
<param name="type" type="DrawElementsType" flow="in" />
<param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
<returns type="void" />
<param name="mode"><type>BeginMode</type></param>
</function>
<!-- StencilFace <=> CullFaceMode -->
<function name="StencilFuncSeparate" category="ES_VERSION_2_0" extension="Core" version="2.0">
<param name="face" type="CullFaceMode" flow="in" />
<param name="func" type="StencilFunction" flow="in" />
<param name="ref" type="StencilValue" flow="in" />
<param name="mask" type="MaskedStencilValue" flow="in" />
<returns type="void" />
<param name="face"><type>CullFaceMode</type></param>
</function>
<function name="StencilOpSeparate" category="ES_VERSION_2_0" extension="Core" version="2.0">
<param name="face" type="CullFaceMode" flow="in" />
<param name="sfail" type="StencilOp" flow="in" />
<param name="dpfail" type="StencilOp" flow="in" />
<param name="dppass" type="StencilOp" flow="in" />
<returns type="void" />
<param name="face"><type>CullFaceMode</type></param>
</function>
</add>
</overload>
<add name="gles2" version="2.0">

View file

@ -16478,6 +16478,83 @@ namespace OpenTK.Graphics.ES20
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Set front and/or back function and reference value for stencil testing
/// </summary>
/// <param name="face">
/// <para>
/// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
/// </para>
/// </param>
/// <param name="func">
/// <para>
/// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
/// </para>
/// </param>
/// <param name="ref">
/// <para>
/// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
/// </para>
/// </param>
/// <param name="mask">
/// <para>
/// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glStencilFuncSeparate")]
public static
void StencilFuncSeparate(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, Int32 mask)
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
Delegates.glStencilFuncSeparate1((OpenTK.Graphics.ES20.CullFaceMode)face, (OpenTK.Graphics.ES20.StencilFunction)func, (Int32)@ref, (UInt32)mask);
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Set front and/or back function and reference value for stencil testing
/// </summary>
/// <param name="face">
/// <para>
/// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
/// </para>
/// </param>
/// <param name="func">
/// <para>
/// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
/// </para>
/// </param>
/// <param name="ref">
/// <para>
/// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
/// </para>
/// </param>
/// <param name="mask">
/// <para>
/// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
/// </para>
/// </param>
[System.CLSCompliant(false)]
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glStencilFuncSeparate")]
public static
void StencilFuncSeparate(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask)
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
Delegates.glStencilFuncSeparate1((OpenTK.Graphics.ES20.CullFaceMode)face, (OpenTK.Graphics.ES20.StencilFunction)func, (Int32)@ref, (UInt32)mask);
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Set front and/or back function and reference value for stencil testing
/// </summary>
@ -16692,6 +16769,44 @@ namespace OpenTK.Graphics.ES20
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Set front and/or back stencil test actions
/// </summary>
/// <param name="face">
/// <para>
/// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
/// </para>
/// </param>
/// <param name="sfail">
/// <para>
/// Specifies the action to take when the stencil test fails. Eight symbolic constants are accepted: GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP, and GL_INVERT. The initial value is GL_KEEP.
/// </para>
/// </param>
/// <param name="dpfail">
/// <para>
/// Specifies the stencil action when the stencil test passes, but the depth test fails. dpfail accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
/// </para>
/// </param>
/// <param name="dppass">
/// <para>
/// Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. dppass accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glStencilOpSeparate")]
public static
void StencilOpSeparate(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass)
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
Delegates.glStencilOpSeparate1((OpenTK.Graphics.ES20.CullFaceMode)face, (OpenTK.Graphics.ES20.StencilOp)sfail, (OpenTK.Graphics.ES20.StencilOp)dpfail, (OpenTK.Graphics.ES20.StencilOp)dppass);
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Set front and/or back stencil test actions
/// </summary>

View file

@ -881,7 +881,7 @@ namespace OpenTK.Graphics.ES20
internal extern static void StencilFuncSeparate(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilFuncSeparate", ExactSpelling = true)]
internal extern static void StencilFuncSeparate1(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask);
internal extern static void StencilFuncSeparate1(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilMask", ExactSpelling = true)]
internal extern static void StencilMask(UInt32 mask);
@ -896,7 +896,7 @@ namespace OpenTK.Graphics.ES20
internal extern static void StencilOpSeparate(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilOpSeparate", ExactSpelling = true)]
internal extern static void StencilOpSeparate1(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass);
internal extern static void StencilOpSeparate1(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glTestFenceNV", ExactSpelling = true)]
internal extern static bool TestFenceNV(UInt32 fence);

View file

@ -879,7 +879,7 @@ namespace OpenTK.Graphics.ES20
internal delegate void StencilFuncSeparate(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask);
internal static StencilFuncSeparate glStencilFuncSeparate;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void StencilFuncSeparate1(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask);
internal delegate void StencilFuncSeparate1(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilFunction func, Int32 @ref, UInt32 mask);
internal static StencilFuncSeparate1 glStencilFuncSeparate1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void StencilMask(UInt32 mask);
@ -894,7 +894,7 @@ namespace OpenTK.Graphics.ES20
internal delegate void StencilOpSeparate(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass);
internal static StencilOpSeparate glStencilOpSeparate;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void StencilOpSeparate1(OpenTK.Graphics.ES20.StencilFace face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass);
internal delegate void StencilOpSeparate1(OpenTK.Graphics.ES20.CullFaceMode face, OpenTK.Graphics.ES20.StencilOp sfail, OpenTK.Graphics.ES20.StencilOp dpfail, OpenTK.Graphics.ES20.StencilOp dppass);
internal static StencilOpSeparate1 glStencilOpSeparate1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate bool TestFenceNV(UInt32 fence);

View file

@ -8618,7 +8618,7 @@ namespace OpenTK.Graphics.ES20
}
/// <summary>
/// Used in GL.CullFace
/// Used in GL.CullFace, GL.StencilFuncSeparate and 1 other function
/// </summary>
public enum CullFaceMode : int
{

View file

@ -8608,39 +8608,6 @@ namespace OpenTK.Graphics.ES30
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
/// <param name="mode">
/// <para>
/// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
/// </para>
/// </param>
/// <param name="first">
/// <para>
/// Specifies the starting index in the enabled arrays.
/// </para>
/// </param>
/// <param name="count">
/// <para>
/// Specifies the number of indices to be rendered.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawArrays")]
public static
void DrawArrays(OpenTK.Graphics.ES30.BeginMode mode, Int32 first, Int32 count)
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
Delegates.glDrawArrays1((OpenTK.Graphics.ES30.BeginMode)mode, (Int32)first, (Int32)count);
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
@ -8809,233 +8776,6 @@ namespace OpenTK.Graphics.ES30
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
/// <param name="mode">
/// <para>
/// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
/// </para>
/// </param>
/// <param name="count">
/// <para>
/// Specifies the number of elements to be rendered.
/// </para>
/// </param>
/// <param name="type">
/// <para>
/// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
/// </para>
/// </param>
/// <param name="indices">
/// <para>
/// Specifies a pointer to the location where the indices are stored.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
public static
void DrawElements(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices)
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
Delegates.glDrawElements1((OpenTK.Graphics.ES30.BeginMode)mode, (Int32)count, (OpenTK.Graphics.ES30.DrawElementsType)type, (IntPtr)indices);
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
/// <param name="mode">
/// <para>
/// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
/// </para>
/// </param>
/// <param name="count">
/// <para>
/// Specifies the number of elements to be rendered.
/// </para>
/// </param>
/// <param name="type">
/// <para>
/// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
/// </para>
/// </param>
/// <param name="indices">
/// <para>
/// Specifies a pointer to the location where the indices are stored.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
public static
void DrawElements<T3>(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
where T3 : struct
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
try
{
Delegates.glDrawElements1((OpenTK.Graphics.ES30.BeginMode)mode, (Int32)count, (OpenTK.Graphics.ES30.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
}
finally
{
indices_ptr.Free();
}
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
/// <param name="mode">
/// <para>
/// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
/// </para>
/// </param>
/// <param name="count">
/// <para>
/// Specifies the number of elements to be rendered.
/// </para>
/// </param>
/// <param name="type">
/// <para>
/// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
/// </para>
/// </param>
/// <param name="indices">
/// <para>
/// Specifies a pointer to the location where the indices are stored.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
public static
void DrawElements<T3>(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
where T3 : struct
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
try
{
Delegates.glDrawElements1((OpenTK.Graphics.ES30.BeginMode)mode, (Int32)count, (OpenTK.Graphics.ES30.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
}
finally
{
indices_ptr.Free();
}
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
/// <param name="mode">
/// <para>
/// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
/// </para>
/// </param>
/// <param name="count">
/// <para>
/// Specifies the number of elements to be rendered.
/// </para>
/// </param>
/// <param name="type">
/// <para>
/// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
/// </para>
/// </param>
/// <param name="indices">
/// <para>
/// Specifies a pointer to the location where the indices are stored.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
public static
void DrawElements<T3>(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
where T3 : struct
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
try
{
Delegates.glDrawElements1((OpenTK.Graphics.ES30.BeginMode)mode, (Int32)count, (OpenTK.Graphics.ES30.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
}
finally
{
indices_ptr.Free();
}
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>
/// <param name="mode">
/// <para>
/// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES are accepted.
/// </para>
/// </param>
/// <param name="count">
/// <para>
/// Specifies the number of elements to be rendered.
/// </para>
/// </param>
/// <param name="type">
/// <para>
/// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
/// </para>
/// </param>
/// <param name="indices">
/// <para>
/// Specifies a pointer to the location where the indices are stored.
/// </para>
/// </param>
[AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
public static
void DrawElements<T3>(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
where T3 : struct
{
#if DEBUG
using (new ErrorHelper(GraphicsContext.CurrentContext))
{
#endif
GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
try
{
Delegates.glDrawElements1((OpenTK.Graphics.ES30.BeginMode)mode, (Int32)count, (OpenTK.Graphics.ES30.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
indices = (T3)indices_ptr.Target;
}
finally
{
indices_ptr.Free();
}
#if DEBUG
}
#endif
}
/// <summary>[requires: v2.0 and ES_VERSION_2_0]
/// Render primitives from array data
/// </summary>

View file

@ -336,9 +336,6 @@ namespace OpenTK.Graphics.ES30
internal delegate void DrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 first, Int32 count);
internal static DrawArrays glDrawArrays;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawArrays1(OpenTK.Graphics.ES30.BeginMode mode, Int32 first, Int32 count);
internal static DrawArrays1 glDrawArrays1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawArraysInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 first, Int32 count, Int32 instancecount);
internal static DrawArraysInstanced glDrawArraysInstanced;
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -366,9 +363,6 @@ namespace OpenTK.Graphics.ES30
internal delegate void DrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices);
internal static DrawElements glDrawElements;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElements1(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices);
internal static DrawElements1 glDrawElements1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 instancecount);
internal static DrawElementsInstanced glDrawElementsInstanced;
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1107,9 +1101,6 @@ namespace OpenTK.Graphics.ES30
internal delegate void StencilFuncSeparate(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilFunction func, Int32 @ref, UInt32 mask);
internal static StencilFuncSeparate glStencilFuncSeparate;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void StencilFuncSeparate1(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilFunction func, Int32 @ref, UInt32 mask);
internal static StencilFuncSeparate1 glStencilFuncSeparate1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void StencilMask(UInt32 mask);
internal static StencilMask glStencilMask;
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1122,9 +1113,6 @@ namespace OpenTK.Graphics.ES30
internal delegate void StencilOpSeparate(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilOp sfail, OpenTK.Graphics.ES30.StencilOp dpfail, OpenTK.Graphics.ES30.StencilOp dppass);
internal static StencilOpSeparate glStencilOpSeparate;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void StencilOpSeparate1(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilOp sfail, OpenTK.Graphics.ES30.StencilOp dpfail, OpenTK.Graphics.ES30.StencilOp dppass);
internal static StencilOpSeparate1 glStencilOpSeparate1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate bool TestFenceNV(UInt32 fence);
internal static TestFenceNV glTestFenceNV;
[System.Security.SuppressUnmanagedCodeSecurity()]

View file

@ -9184,7 +9184,7 @@ namespace OpenTK.Graphics.ES30
}
/// <summary>
/// Used in GL.DrawArrays, GL.DrawElements
/// Not used directly.
/// </summary>
public enum BeginMode : int
{

View file

@ -337,9 +337,6 @@ namespace OpenTK.Graphics.ES30
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawArrays", ExactSpelling = true)]
internal extern static void DrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 first, Int32 count);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawArrays", ExactSpelling = true)]
internal extern static void DrawArrays1(OpenTK.Graphics.ES30.BeginMode mode, Int32 first, Int32 count);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawArraysInstanced", ExactSpelling = true)]
internal extern static void DrawArraysInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 first, Int32 count, Int32 instancecount);
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -367,9 +364,6 @@ namespace OpenTK.Graphics.ES30
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElements", ExactSpelling = true)]
internal extern static void DrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElements", ExactSpelling = true)]
internal extern static void DrawElements1(OpenTK.Graphics.ES30.BeginMode mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstanced", ExactSpelling = true)]
internal extern static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 instancecount);
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1108,9 +1102,6 @@ namespace OpenTK.Graphics.ES30
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilFuncSeparate", ExactSpelling = true)]
internal extern static void StencilFuncSeparate(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilFunction func, Int32 @ref, UInt32 mask);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilFuncSeparate", ExactSpelling = true)]
internal extern static void StencilFuncSeparate1(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilFunction func, Int32 @ref, UInt32 mask);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilMask", ExactSpelling = true)]
internal extern static void StencilMask(UInt32 mask);
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1123,9 +1114,6 @@ namespace OpenTK.Graphics.ES30
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilOpSeparate", ExactSpelling = true)]
internal extern static void StencilOpSeparate(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilOp sfail, OpenTK.Graphics.ES30.StencilOp dpfail, OpenTK.Graphics.ES30.StencilOp dppass);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glStencilOpSeparate", ExactSpelling = true)]
internal extern static void StencilOpSeparate1(OpenTK.Graphics.ES30.StencilFace face, OpenTK.Graphics.ES30.StencilOp sfail, OpenTK.Graphics.ES30.StencilOp dpfail, OpenTK.Graphics.ES30.StencilOp dppass);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glTestFenceNV", ExactSpelling = true)]
internal extern static bool TestFenceNV(UInt32 fence);
[System.Security.SuppressUnmanagedCodeSecurity()]

File diff suppressed because it is too large Load diff

View file

@ -1364,7 +1364,7 @@ namespace OpenTK.Graphics.OpenGL
internal extern static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsBaseVertex", ExactSpelling = true)]
internal extern static void DrawElementsBaseVertex1(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal extern static void DrawElementsBaseVertex1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsIndirect", ExactSpelling = true)]
internal extern static void DrawElementsIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.All type, IntPtr indirect);
@ -1378,6 +1378,9 @@ namespace OpenTK.Graphics.OpenGL
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedARB", ExactSpelling = true)]
internal extern static void DrawElementsInstancedARB(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedARB", ExactSpelling = true)]
internal extern static void DrawElementsInstancedARB1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedBaseInstance", ExactSpelling = true)]
internal extern static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, UInt32 baseinstance);
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1385,7 +1388,7 @@ namespace OpenTK.Graphics.OpenGL
internal extern static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedBaseVertex", ExactSpelling = true)]
internal extern static void DrawElementsInstancedBaseVertex1(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex);
internal extern static void DrawElementsInstancedBaseVertex1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance", ExactSpelling = true)]
internal extern static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance);
@ -1393,6 +1396,9 @@ namespace OpenTK.Graphics.OpenGL
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedEXT", ExactSpelling = true)]
internal extern static void DrawElementsInstancedEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawElementsInstancedEXT", ExactSpelling = true)]
internal extern static void DrawElementsInstancedEXT1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawMeshArraysSUN", ExactSpelling = true)]
internal extern static void DrawMeshArraysSUN(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 width);
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1415,7 +1421,7 @@ namespace OpenTK.Graphics.OpenGL
internal extern static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawRangeElementsBaseVertex", ExactSpelling = true)]
internal extern static void DrawRangeElementsBaseVertex1(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal extern static void DrawRangeElementsBaseVertex1(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glDrawRangeElementsEXT", ExactSpelling = true)]
internal extern static void DrawRangeElementsEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices);
@ -3745,6 +3751,9 @@ namespace OpenTK.Graphics.OpenGL
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glMultiDrawArraysEXT", ExactSpelling = true)]
internal extern static unsafe void MultiDrawArraysEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glMultiDrawArraysEXT", ExactSpelling = true)]
internal extern static unsafe void MultiDrawArraysEXT1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* first, Int32* count, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glMultiDrawArraysIndirect", ExactSpelling = true)]
internal extern static void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, IntPtr indirect, Int32 drawcount, Int32 stride);
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -3772,6 +3781,9 @@ namespace OpenTK.Graphics.OpenGL
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glMultiDrawElementsEXT", ExactSpelling = true)]
internal extern static unsafe void MultiDrawElementsEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glMultiDrawElementsEXT", ExactSpelling = true)]
internal extern static unsafe void MultiDrawElementsEXT1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
[System.Security.SuppressUnmanagedCodeSecurity()]
[System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glMultiDrawElementsIndirect", ExactSpelling = true)]
internal extern static void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL.All mode, OpenTK.Graphics.OpenGL.All type, IntPtr indirect, Int32 drawcount, Int32 stride);
[System.Security.SuppressUnmanagedCodeSecurity()]

View file

@ -1362,7 +1362,7 @@ namespace OpenTK.Graphics.OpenGL
internal delegate void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal static DrawElementsBaseVertex glDrawElementsBaseVertex;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsBaseVertex1(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal delegate void DrawElementsBaseVertex1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal static DrawElementsBaseVertex1 glDrawElementsBaseVertex1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.All type, IntPtr indirect);
@ -1377,13 +1377,16 @@ namespace OpenTK.Graphics.OpenGL
internal delegate void DrawElementsInstancedARB(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
internal static DrawElementsInstancedARB glDrawElementsInstancedARB;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstancedARB1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
internal static DrawElementsInstancedARB1 glDrawElementsInstancedARB1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, UInt32 baseinstance);
internal static DrawElementsInstancedBaseInstance glDrawElementsInstancedBaseInstance;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex);
internal static DrawElementsInstancedBaseVertex glDrawElementsInstancedBaseVertex;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstancedBaseVertex1(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex);
internal delegate void DrawElementsInstancedBaseVertex1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex);
internal static DrawElementsInstancedBaseVertex1 glDrawElementsInstancedBaseVertex1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance);
@ -1392,6 +1395,9 @@ namespace OpenTK.Graphics.OpenGL
internal delegate void DrawElementsInstancedEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
internal static DrawElementsInstancedEXT glDrawElementsInstancedEXT;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawElementsInstancedEXT1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
internal static DrawElementsInstancedEXT1 glDrawElementsInstancedEXT1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawMeshArraysSUN(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 width);
internal static DrawMeshArraysSUN glDrawMeshArraysSUN;
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -1413,7 +1419,7 @@ namespace OpenTK.Graphics.OpenGL
internal delegate void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal static DrawRangeElementsBaseVertex glDrawRangeElementsBaseVertex;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawRangeElementsBaseVertex1(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal delegate void DrawRangeElementsBaseVertex1(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex);
internal static DrawRangeElementsBaseVertex1 glDrawRangeElementsBaseVertex1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void DrawRangeElementsEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices);
@ -3744,6 +3750,9 @@ namespace OpenTK.Graphics.OpenGL
internal unsafe delegate void MultiDrawArraysEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount);
internal unsafe static MultiDrawArraysEXT glMultiDrawArraysEXT;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal unsafe delegate void MultiDrawArraysEXT1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* first, Int32* count, Int32 primcount);
internal unsafe static MultiDrawArraysEXT1 glMultiDrawArraysEXT1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, IntPtr indirect, Int32 drawcount, Int32 stride);
internal static MultiDrawArraysIndirect glMultiDrawArraysIndirect;
[System.Security.SuppressUnmanagedCodeSecurity()]
@ -3771,6 +3780,9 @@ namespace OpenTK.Graphics.OpenGL
internal unsafe delegate void MultiDrawElementsEXT(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
internal unsafe static MultiDrawElementsEXT glMultiDrawElementsEXT;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal unsafe delegate void MultiDrawElementsEXT1(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount);
internal unsafe static MultiDrawElementsEXT1 glMultiDrawElementsEXT1;
[System.Security.SuppressUnmanagedCodeSecurity()]
internal delegate void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL.All mode, OpenTK.Graphics.OpenGL.All type, IntPtr indirect, Int32 drawcount, Int32 stride);
internal static MultiDrawElementsIndirect glMultiDrawElementsIndirect;
[System.Security.SuppressUnmanagedCodeSecurity()]

View file

@ -27958,7 +27958,7 @@ namespace OpenTK.Graphics.OpenGL
}
/// <summary>
/// Used in GL.Begin, GL.DrawArrays and 7 other functions
/// Used in GL.Arb.DrawElementsInstanced, GL.Begin and 14 other functions
/// </summary>
public enum BeginMode : int
{