diff --git a/src/StgSharp.Common/HighPerformance/Memory/BufferStack.cs b/src/StgSharp.Common/HighPerformance/Memory/BufferStack.cs
index a686d04b..195c20d1 100644
--- a/src/StgSharp.Common/HighPerformance/Memory/BufferStack.cs
+++ b/src/StgSharp.Common/HighPerformance/Memory/BufferStack.cs
@@ -6,6 +6,7 @@
// -----------------------------------------------------------------------------
using System;
+using System.Buffers;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -92,6 +93,50 @@ namespace StgSharp.HighPerformance.Memory
return true;
}
+ ///
+ /// Fills the stack in place via a caller-supplied callback, mirroring
+ /// CapacityFixedStack<T>.FillRange.
+ ///
+ ///
+ /// Preferred over building a temporary span and handing it to
+ /// :
+ ///
+ /// - The caller no longer needs a scratch buffer at all — the
+ /// callback writes straight into this stack's native storage, so there
+ /// is no stackalloc to size and no copy afterwards.
+ /// - Span<T> does not implicitly convert to
+ /// ReadOnlySpan<T> in a way that participates in generic
+ /// type inference before C# 14, so Create(span) fails with
+ /// CS0411 on older compilers. Passing the element type through the
+ /// enclosing instance sidesteps inference entirely.
+ ///
+ ///
+ internal unsafe void FillRange(
+ SpanAction filling,
+ nuint buffer
+ )
+ {
+ if (filling is null) {
+ return;
+ }
+
+ Header* header = (Header*)_buffer;
+ T* dataStart = (T*)(_buffer + sizeof(Header));
+
+ // Hand out only the unused tail, matching CapacityFixedStack:
+ // filling is an append, not a rewrite of live entries.
+ int start = (int)header->Top;
+ int room = (int)header->Capacity - start;
+ if (room <= 0) {
+ return;
+ }
+
+ filling(new Span(dataStart + start, room), buffer);
+
+ header->Top = header->Capacity;
+ _count = header->Capacity;
+ }
+
// Internal method for efficient bulk initialization
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal unsafe void InitializeFromSpan(
diff --git a/src/StgSharp.Common/HighPerformance/Memory/ConcurrentBufferStack.cs b/src/StgSharp.Common/HighPerformance/Memory/ConcurrentBufferStack.cs
index 411003c1..61959a5c 100644
--- a/src/StgSharp.Common/HighPerformance/Memory/ConcurrentBufferStack.cs
+++ b/src/StgSharp.Common/HighPerformance/Memory/ConcurrentBufferStack.cs
@@ -8,6 +8,7 @@
using StgSharp.Threading;
using System;
+using System.Buffers;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -253,6 +254,49 @@ namespace StgSharp.HighPerformance.Memory
}
}
+ ///
+ /// Fills the stack in place via a caller-supplied callback, mirroring
+ /// CapacityFixedStack<T>.FillRange.
+ ///
+ ///
+ /// Intended for construction only, and therefore takes no lock — the
+ /// instance is not yet published to other threads at that point. Do not
+ /// call it on a stack that is already in concurrent use.
+ ///
+ /// Preferred over building a temporary span and handing it to
+ ///
+ /// for the same two reasons as the non-concurrent variant: the callback
+ /// writes straight into native storage (no scratch buffer, no copy),
+ /// and passing the element type through the enclosing instance avoids
+ /// the Span-to-ReadOnlySpan inference gap that yields
+ /// CS0411 before C# 14.
+ ///
+ ///
+ internal unsafe void FillRange(
+ SpanAction filling,
+ nuint buffer
+ )
+ {
+ if (filling is null) {
+ return;
+ }
+
+ Header* header = (Header*)_buffer;
+ T* dataStart = (T*)(_buffer + sizeof(Header));
+
+ // Append into the unused tail only, matching CapacityFixedStack.
+ int start = header->Top;
+ int room = header->Capacity - start;
+ if (room <= 0) {
+ return;
+ }
+
+ filling(new Span(dataStart + start, room), buffer);
+
+ header->Top = header->Capacity;
+ Volatile.Write(ref _count, header->Capacity);
+ }
+
// Internal method for efficient bulk initialization
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal unsafe void InitializeFromSpan(
diff --git a/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.Chunked.cs b/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.Chunked.cs
index 1017ca8d..85cc6902 100644
--- a/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.Chunked.cs
+++ b/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.Chunked.cs
@@ -40,15 +40,28 @@ namespace StgSharp.HighPerformance.Memory
> 64 => 64,
_ => (int)count
};
- Span span = stackalloc nuint[initCount];
- for (int i = 0; i < initCount; i++) {
- span[i] = _currentBuffer + ((nuint)(i * _elementSize));
- }
_buffers = new(4);
_buffers.Push(_currentBuffer);
- _recycle = BufferStackBuilder.Create(span);
+
+ // Fill through a callback rather than building a scratch span and
+ // passing it to BufferStackBuilder.Create: no stackalloc, no copy,
+ // and no reliance on Span-to-ReadOnlySpan inference (CS0411 before
+ // C# 14). Same shape as FixedSlabAllocator.
+ int elementSize = _elementSize;
+ _recycle = new(initCount);
+ _recycle.FillRange(init, _currentBuffer);
_currentCapacity = count;
_currentIndex = (nuint)initCount;
+
+ void init(
+ Span arr,
+ nuint buffer
+ )
+ {
+ for (int i = 0; i < arr.Length; i++) {
+ arr[i] = buffer + ((nuint)(i * elementSize));
+ }
+ }
}
public override nuint Allocate()
diff --git a/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.ChunkedConcurrent.cs b/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.ChunkedConcurrent.cs
index 8762698a..5c0b6f79 100644
--- a/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.ChunkedConcurrent.cs
+++ b/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.ChunkedConcurrent.cs
@@ -44,14 +44,26 @@ namespace StgSharp.HighPerformance.Memory
> 64 => 64,
_ => (int)count
};
- Span span = stackalloc nuint[initCount];
- for (int i = 0; i < initCount; i++) {
- span[i] = _currentBuffer + (nuint)(i * _elementSize);
- }
_buffers = new(4);
- _recycle = BufferStackBuilder.CreateConcurrent(span);
+
+ // Callback fill instead of scratch span + CreateConcurrent: avoids
+ // the stackalloc and the copy, and sidesteps the CS0411 inference
+ // gap. Safe without locking — not yet published to other threads.
+ int elementSize = _elementSize;
+ _recycle = new(initCount);
+ _recycle.FillRange(init, _currentBuffer);
_currentCapacity = count;
_currentIndex = (nuint)initCount;
+
+ void init(
+ Span arr,
+ nuint buffer
+ )
+ {
+ for (int i = 0; i < arr.Length; i++) {
+ arr[i] = buffer + (nuint)(i * elementSize);
+ }
+ }
}
public override nuint Allocate()
diff --git a/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.SequencialConcurrent.cs b/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.SequencialConcurrent.cs
index 21213dc0..bfaa1488 100644
--- a/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.SequencialConcurrent.cs
+++ b/src/StgSharp.Common/HighPerformance/Memory/SlabAllocator.SequencialConcurrent.cs
@@ -43,12 +43,26 @@ namespace StgSharp.HighPerformance.Memory
> 64 => 64,
_ => ((int)_capacity) / 4
};
- Span span = stackalloc nuint[initCount];
- for (int i = 0; i < initCount; i++) {
- span[i] = (nuint)i;
- }
- _stack = BufferStackBuilder.CreateConcurrent(span);
+ // Callback fill instead of scratch span + CreateConcurrent: avoids
+ // the stackalloc and the copy, and sidesteps the CS0411 inference
+ // gap. Safe without locking — not yet published to other threads.
+ //
+ // Note this variant stores *indices*, not addresses, so the buffer
+ // argument is unused here; it is kept to match the shared
+ // SpanAction shape.
+ _stack = new(initCount);
+ _stack.FillRange(init, 0);
_highestAllocated += (nuint)initCount;
+
+ static void init(
+ Span arr,
+ nuint _
+ )
+ {
+ for (int i = 0; i < arr.Length; i++) {
+ arr[i] = (nuint)i;
+ }
+ }
}
internal T* BasePointer => _buffer;
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Buffer.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Buffer.cs
new file mode 100644
index 00000000..3149e911
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Buffer.cs
@@ -0,0 +1,165 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Buffer"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using StgSharp.Mathematics.Numeric;
+
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Numerics;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindBuffer(
+ BufferType bufferType,
+ GlHandle handle
+ )
+ {
+ _context->glBindBuffer((uint)bufferType, handle.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void DeleteBuffer(
+ GlHandle handle
+ )
+ {
+ _context->glDeleteBuffers(1, (uint*)&handle);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void DeleteBuffers(
+ GlHandle[] handle
+ )
+ {
+ if ((handle == null) || (handle.Length == 0)) {
+ throw new ArgumentNullException(nameof(handle));
+ }
+ fixed (GlHandle* hptr = handle)
+ {
+ uint* iptr = (uint*)hptr;
+ for (int i = 0; i < handle.Length; i++) {
+ _context->glDeleteBuffers(1, iptr + i);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe GlHandle[] GenBuffers(
+ int count
+ )
+ {
+ GlHandle[] h = new GlHandle[count];
+ fixed (GlHandle* hptr = h)
+ {
+ for (int i = 0; i < count; i++) {
+ _context->glGenBuffers(count, ((uint*)hptr) + i);
+ }
+ }
+ return h;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetBufferData(
+ BufferType bufferType,
+ T bufferData,
+ BufferUsage usage
+ ) where T : unmanaged, INumber
+ {
+ int size = Marshal.SizeOf();
+ T* p = &bufferData;
+ _context->glBufferData((uint)bufferType, size, (nint*)p, (uint)usage);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetBufferData(
+ BufferType bufferType,
+ [NotNull] T[] bufferArray,
+ BufferUsage usage
+ ) where T : unmanaged, INumber
+ {
+ int size = bufferArray.Length * Marshal.SizeOf();
+ if (bufferArray == null) {
+ return;
+ }
+
+ fixed (void* bufferPtr = bufferArray) {
+ _context->glBufferData((uint)bufferType, size, (nint*)bufferPtr, (uint)usage);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetBufferData(
+ BufferType bufferType,
+ ReadOnlySpan bufferSpan,
+ BufferUsage usage
+ ) where T : unmanaged, INumber
+ {
+ int size = bufferSpan.Length * Marshal.SizeOf();
+ if (bufferSpan.IsEmpty) {
+ return;
+ }
+
+ fixed (void* bufferPtr = bufferSpan) {
+ _context->glBufferData((uint)bufferType, size, (IntPtr*)bufferPtr, (uint)usage);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetBufferData(
+ BufferType bufferType,
+ Span bufferArray,
+ BufferUsage usage
+ ) where T : unmanaged, INumber
+ {
+ int size = bufferArray.Length * Marshal.SizeOf();
+ if (bufferArray.IsEmpty) {
+ return;
+ }
+
+ fixed (void* bufferPtr = bufferArray) {
+ _context->glBufferData((uint)bufferType, size, (IntPtr*)bufferPtr, (uint)usage);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetBufferVectorData(
+ BufferType bufferType,
+ ReadOnlySpan bufferSpan,
+ BufferUsage usage
+ ) where T : unmanaged, IUnmanagedVector
+ {
+ int size = bufferSpan.Length * Marshal.SizeOf();
+
+ fixed (void* bufferPtr = bufferSpan) {
+ _context->glBufferData((uint)bufferType, size, (IntPtr*)bufferPtr, (uint)usage);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetBufferVectorData(
+ BufferType bufferType,
+ T[] bufferArray,
+ BufferUsage usage
+ ) where T : unmanaged, IUnmanagedVector
+ {
+ int size = bufferArray.Length * Marshal.SizeOf(typeof(T));
+ if (bufferArray == null) {
+ return;
+ }
+ fixed (void* bufferPtr = bufferArray) {
+ _context->glBufferData((uint)bufferType, (nuint)size, (IntPtr*)bufferPtr,
+ (uint)usage);
+ }
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Context.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Context.cs
new file mode 100644
index 00000000..22f29e63
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Context.cs
@@ -0,0 +1,76 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Context"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.CompilerServices;
+using System.Threading;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ private static readonly Dictionary contextToGLMap = [];
+ private static readonly ThreadLocal _currentGL = new();
+ private OpenglContext* _context;
+
+ private readonly Lazy _attachmentColorRange;
+
+ private OpenGLFunction()
+ {
+ textureUnitCountGetter = glConst.MAX_TEXTURE_IMAGE_UNITS;
+ UnusedTextureImageUint = [];
+ _attachmentColorRange = new Lazy(
+ () => GetMaskInteger(glConst.MAX_COLOR_ATTACHMENTS));
+ }
+
+ public int AttachmentColorRange => _attachmentColorRange.Value;
+
+ public static OpenGLFunction CurrentGL
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get => _currentGL.Value!;
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal set => _currentGL.Value = value;
+ }
+
+ internal IntPtr ContextHandle => (IntPtr)_context;
+
+ protected ref OpenglContext Context
+ {
+ get
+ {
+ #if DEBUG
+ ArgumentNullException.ThrowIfNull(_context, nameof(_context));
+ #endif
+ return ref (*_context);
+ }
+ }
+
+ internal static OpenGLFunction BuildGlFunctionPackage(
+ IntPtr handle
+ )
+ {
+ if (contextToGLMap.TryGetValue(handle, out OpenGLFunction pack)) {
+ return pack;
+ }
+ pack = new OpenGLFunction
+ {
+ _context = (OpenglContext*)handle
+ };
+ contextToGLMap.Add(handle, pack);
+ return pack;
+ }
+
+ ~OpenGLFunction()
+ {
+ _ = contextToGLMap.Remove(ContextHandle);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Diagnostics.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Diagnostics.cs
new file mode 100644
index 00000000..8017fbce
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Diagnostics.cs
@@ -0,0 +1,72 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Diagnostics"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [Conditional("DEBUG")]
+ public void Assert(
+ bool shouldReportWhenNormal
+ )
+ {
+ uint code = _context->glGetError();
+ if (code != glConst.NO_ERROR) {
+ throw new GlExecutionException(code);
+ }
+ if (shouldReportWhenNormal) {
+ Console.WriteLine("OpenGL runs normally");
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearError()
+ {
+ uint code = 0;
+ for (int i = 0; i < 1024; i++)
+ {
+ code = _context->glGetError();
+ if (code == 0) {
+ return;
+ }
+
+ // Console.WriteLine(code);
+ }
+ foreach (ProcessThread thread in Process.GetCurrentProcess().Threads) {
+ Debugger.Break();
+ }
+ throw new GlErrorOverflowException(1024, code);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void ClearGraphicError()
+ {
+ while (_context->glGetError() != 0) { }
+ }
+
+ public unsafe int GetMaskInteger(
+ uint statusCode
+ )
+ {
+ int ret = 0;
+ _context->glGetIntegerv(statusCode, &ret);
+ return ret;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void WaitAccomplishment()
+ {
+ _context->glFinish();
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Drawing.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Drawing.cs
new file mode 100644
index 00000000..a863c921
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Drawing.cs
@@ -0,0 +1,105 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Drawing"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using System;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Clear(
+ MaskBufferBit mask
+ )
+ {
+ _context->glClear((uint)mask);
+ }
+
+ public void DepthMaskAccess(
+ bool isWrite
+ )
+ {
+ _context->glDepthMask(isWrite ? (byte)1 : (byte)0);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Disable(
+ glOperation operation
+ )
+ {
+ _context->glDisable((uint)operation);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void DrawArrays(
+ GeometryType mode,
+ int first,
+ int count
+ )
+ {
+ _context->glDrawArrays((uint)mode, first, count);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void DrawElements(
+ GeometryType mode,
+ int count,
+ TypeCode type,
+ IntPtr ptr
+ )
+ {
+ uint a = type switch
+ {
+ TypeCode.UInt32 => glConst.UNSIGNED_INT,
+ TypeCode.UInt16 => glConst.UNSIGNED_SHORT,
+ TypeCode.Byte => glConst.UNSIGNED_BYTE,
+ _ => throw new ArgumentException(
+ $"Parameter error in parameter {nameof(type)} method DrawElements. Only {typeof(uint).Name},{typeof(ushort).Name},{typeof(byte).Name} types are supported.")
+ };
+ _context->glDrawElements((uint)mode, count, a, (nint*)ptr);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsInstanced(
+ GeometryType mode,
+ int count,
+ TypeCode type,
+ IntPtr ptr,
+ int amount
+ )
+ {
+ uint a = type switch
+ {
+ TypeCode.UInt32 => glConst.UNSIGNED_INT,
+ TypeCode.UInt16 => glConst.UNSIGNED_SHORT,
+ TypeCode.Byte => glConst.UNSIGNED_BYTE,
+ _ => throw new ArgumentException(
+ $"Parameter error in parameter {nameof(type)} method DrawElements. Only {typeof(uint).Name},{typeof(ushort).Name},{typeof(byte).Name} types are supported.")
+ };
+ _context->glDrawElementsInstanced((uint)mode, count, a, (nint*)ptr, amount);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Enable(
+ glOperation operation
+ )
+ {
+ _context->glEnable((uint)operation);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PolygonMode(
+ FaceMode mode
+ )
+ {
+ _context->glPolygonMode(glConst.FRONT_AND_BACK, (uint)mode);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Framebuffer.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Framebuffer.cs
new file mode 100644
index 00000000..25981988
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Framebuffer.cs
@@ -0,0 +1,122 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Framebuffer"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using System;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ /// Generate framebuffer object handles into the supplied storage.
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenFrameBuffers(
+ Span framebuffers
+ )
+ {
+ fixed (GlHandle* framebuffersPtr = framebuffers) {
+ Context.glGenFramebuffers(framebuffers.Length, (uint*)framebuffersPtr);
+ }
+ }
+
+ ///
+ /// Bind a framebuffer object to a framebuffer target.
+ ///
+ /// The framebuffer target of the binding operation.
+ /// The framebuffer object handle to bind.
+ ///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindFrameBuffer(
+ FrameBufferTarget target,
+ GlHandle handle
+ )
+ {
+ _context->glBindFramebuffer((uint)target, handle.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindRenderBuffer(
+ GlHandle handle
+ )
+ {
+ _context->glBindRenderbuffer(glConst.RENDERBUFFER, handle.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public FrameBufferStatus CheckFrameBufferStatus(
+ FrameBufferTarget target
+ )
+ {
+ return (FrameBufferStatus)_context->glCheckFramebufferStatus((uint)target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CombineFrameBufferRenderBuffer(
+ FrameBufferAttachment attachment,
+ GlHandle rboHandle
+ )
+ {
+ _context->glFramebufferRenderbuffer(glConst.FRAMEBUFFER, (uint)attachment,
+ glConst.RENDERBUFFER, rboHandle.Value);
+ }
+
+ /// Delete one renderbuffer object.
+ public unsafe void DeleteRenderBuffer(
+ GlHandle bufferHandle
+ )
+ {
+ _context->glDeleteRenderbuffers(1, &bufferHandle.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FrameBufferTexture2d(
+ FrameBufferTarget target,
+ uint attachment,
+ Texture2DTarget texTarget,
+ GlHandle textureHandle,
+ int level
+ )
+ {
+ _context->glFramebufferTexture2D((uint)target, attachment, (uint)texTarget,
+ textureHandle.Value, level);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe GlHandle[] GenRenderBuffer(
+ int count
+ )
+ {
+ GlHandle[] h = new GlHandle[count];
+ fixed (GlHandle* hptr = h) {
+ _context->glGenRenderbuffers(count, (uint*)hptr);
+ }
+ return h;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetRenderBufferStorage(
+ RenderBufferInternalFormat internalFormat,
+ (int width, int height) size
+ )
+ {
+ _context->glRenderbufferStorage(glConst.RENDERBUFFER, (uint)internalFormat, size.width,
+ size.height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void SetRenderBufferStorage(
+ RenderBufferInternalFormat internalFormat,
+ (uint width, uint height) size
+ )
+ {
+ _context->glRenderbufferStorage(glConst.RENDERBUFFER, (uint)internalFormat,
+ (int)size.width, (int)size.height);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Shader.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Shader.cs
new file mode 100644
index 00000000..b76a5762
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Shader.cs
@@ -0,0 +1,131 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Shader"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using StgSharp.Graphics;
+
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe GlHandle CreateGraphicProgram()
+ {
+ return GlHandle.Create(_context->glCreateProgram());
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe GlHandle[] CreateProgram(
+ int count
+ )
+ {
+ GlHandle[] h = new GlHandle[count];
+ for (int i = 0; i < count; i++) {
+ h.SetValue(i, _context->glCreateProgram());
+ }
+ return h;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public GlHandle[] CreateShaderSet(
+ int count,
+ ShaderType type
+ )
+ {
+ GlHandle[] ret = new GlHandle[count];
+ uint t = (uint)type;
+ for (int i = 0; i < count; i++)
+ {
+ uint id = _context->glCreateShader(t);
+ if (id == 0)
+ {
+ uint error = _context->glGetError();
+ throw new InvalidOperationException($"Failed in creating shader: {error}");
+ }
+ ret[i] = GlHandle.Create(id);
+ }
+ return ret;
+ }
+
+ public string GetShaderStatus(
+ Shader s,
+ int index,
+ int key
+ )
+ {
+ IntPtr sptr = IntPtr.Zero;
+ if (GraphicFramework.glCheckShaderStatus(ref Context, s.handle[index].Value, key,
+ ref sptr) == 0) {
+ return Marshal.PtrToStringAnsi(sptr) ?? string.Empty;
+ }
+ return string.Empty;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe GlHandle GetUniformLocation(
+ GlHandle program,
+ string name
+ )
+ {
+ byte[] code = Encoding.UTF8.GetBytes(name);
+ fixed (byte* ptr = code)
+ {
+ int ret = _context->glGetUniformLocation(program.Value, ptr);
+ #if DEBUG
+ if (ret is glConst.INVALID_OPERATION or glConst.INVALID_VALUE)
+ {
+ throw new InvalidOperationException();
+ }
+ if (ret == -1) {
+ throw new UniformEmptyReferenceException(nameof(program), name);
+ }
+ #endif
+ return GlHandle.CreateSigned(ret);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void LoadShaderSource(
+ GlHandle shaderHandle,
+ byte[] codeStream
+ )
+ {
+ fixed (byte* streamPtr = codeStream) {
+ _context->glShaderSource(shaderHandle.Value, 1, &streamPtr, (int*)0);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void LoadShaderSource(
+ GlHandle shaderHandle,
+ ReadOnlySpan codeStream
+ )
+ {
+ fixed (char* streamPtr = codeStream) {
+ _context->glShaderSource(shaderHandle.Value, 1, (byte**)&streamPtr, (int*)0);
+ }
+ }
+
+ public unsafe void LoadShaderSource(
+ GlHandle shaderHandle,
+ ReadOnlySpan codeStream
+ )
+ {
+ fixed (byte* streamPtr = codeStream)
+ {
+ byte* bptr = streamPtr;
+ _context->glShaderSource(shaderHandle.Value, 1, &bptr, (int*)0);
+ }
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Texture.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Texture.cs
new file mode 100644
index 00000000..ed644a4a
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Texture.cs
@@ -0,0 +1,149 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Texture"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using StgSharp.Graphics;
+
+using System;
+using System.Numerics;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ActiveTextureUnit(
+ uint type
+ )
+ {
+ _context->glActiveTexture(type);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe GlHandle[] GenTextures(
+ int count
+ )
+ {
+ GlHandle[] h = new GlHandle[count];
+ fixed (GlHandle* hptr = h) {
+ _context->glGenTextures(count, (uint*)hptr);
+ }
+ return h;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void GetTextureImage(
+ Texture2DTarget target,
+ int level,
+ ImageChannel channel,
+ PixelChannelLayout channelLayout,
+ T[] dataStream
+ ) where T : unmanaged, INumber
+ {
+ fixed (T* tptr = dataStream) {
+ _context->glGetTexImage((uint)target, level, (uint)channel, (uint)channelLayout,
+ (nint*)tptr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureLevelProperty(
+ uint textureTypeMask,
+ int level,
+ uint propertyMask,
+ out int propertyValue
+ )
+ {
+ fixed (int* iptr = &propertyValue) {
+ _context->glGetTexLevelParameteriv(textureTypeMask, level, propertyMask, iptr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ReadPixels(
+ (int X, int Y) beginPosition,
+ (int width, int height) size,
+ FrameBufferChannel format,
+ PixelChannelLayout dataType,
+ ref byte[] stream
+ )
+ {
+ fixed (byte* bptr = stream) {
+ _context->glReadPixels(beginPosition.X, beginPosition.Y, size.width, size.height,
+ (uint)format, (uint)dataType, (nint*)bptr);
+ }
+ }
+
+ public void RereadImage(
+ in Image i,
+ (int X, int Y) beginPosition,
+ FrameBufferChannel format,
+ PixelChannelLayout dataType
+ )
+ {
+ byte[] pixels = i.PixelBuffer;
+ if (!pixels.CheckArrayFormat(dataType)) {
+ throw new GlArrayFormatException(dataType, "i.PixelArray");
+ }
+ fixed (byte* bptr = pixels) {
+ _context->glReadPixels(beginPosition.X, beginPosition.Y, i.Width, i.Height,
+ (uint)format, (uint)dataType, (nint*)bptr);
+ }
+ i.PixelUpdateCount++;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureImage2d(
+ Texture2DTarget target,
+ int level,
+ ImageChannel sourceChannel,
+ int width,
+ int height,
+ ImageChannel targetChannel,
+ PixelChannelLayout type,
+ T[] pixels
+ ) where T : unmanaged, INumber
+ {
+ fixed (T* tptr = pixels)
+ {
+ T* ptr = ((pixels == null) || (pixels.Length == 0)) ? (T*)IntPtr.Zero : tptr;
+ _context->glTexImage2D((uint)target, level, (int)sourceChannel, width, height, 0,
+ (uint)targetChannel, (uint)type, (nint*)tptr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureImage2d(
+ Texture2DTarget target,
+ int level,
+ ImageChannel sourceChannel,
+ int width,
+ int height,
+ ImageChannel targetChannel,
+ PixelChannelLayout type,
+ Span pixelSpan
+ ) where T : unmanaged, INumber
+ {
+ fixed (T* tPtr = pixelSpan) {
+ _context->glTexImage2D((uint)target, level, (int)sourceChannel, width, height, 0,
+ (uint)targetChannel, (uint)type, (nint*)tPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameter(
+ int target,
+ uint pname,
+ int param
+ )
+ {
+ _context->glTexParameteri((uint)target, pname, param);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/glFunction.SourceManager.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.TextureUnits.cs
similarity index 97%
rename from src/StgSharp.Graphics/OpenGL/glFunction.SourceManager.cs
rename to src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.TextureUnits.cs
index c8b9bf7f..777e1285 100644
--- a/src/StgSharp.Graphics/OpenGL/glFunction.SourceManager.cs
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.TextureUnits.cs
@@ -1,12 +1,10 @@
// -----------------------------------------------------------------------------
-// file="glFunction.SourceManager"
+// file="OpenGLFunction.TextureUnits"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
-using StgSharp;
-
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -70,4 +68,4 @@ namespace StgSharp.Graphics.OpenGL
}
}
-}
\ No newline at end of file
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Uniform.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Uniform.cs
new file mode 100644
index 00000000..e105cf66
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.Uniform.cs
@@ -0,0 +1,29 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.Uniform"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using StgSharp.Mathematics.Graphics;
+
+using System;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SetUniformValue(
+ Uniform uniform,
+ Vec4 vec
+ )
+ {
+ ArgumentNullException.ThrowIfNull(uniform);
+ Context.glUniform4fv(uniform.id.SignedValue, 1, (float*)&vec);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.VertexArray.cs b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.VertexArray.cs
new file mode 100644
index 00000000..99188f77
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Api/OpenGLFunction.VertexArray.cs
@@ -0,0 +1,77 @@
+// -----------------------------------------------------------------------------
+// file="OpenGLFunction.VertexArray"
+// Project: StgSharp
+// Copyright (c) Nitload.
+// SPDX-License-Identifier: MIT
+// -----------------------------------------------------------------------------
+
+using StgSharp.Graphics;
+
+using System;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindVertexArray(
+ GlHandle handle
+ )
+ {
+ _context->glBindVertexArray(handle.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe void DeleteVertexArrays(
+ GlHandle[] arrays
+ )
+ {
+ fixed (GlHandle* hptr = arrays)
+ {
+ uint* iptr = (uint*)hptr;
+ for (int i = 0; i < arrays.Length; i++) {
+ _context->glDeleteVertexArrays(1, iptr + i);
+ }
+ }
+ }
+
+ public unsafe GlHandle[] GenVertexArrays(
+ int count
+ )
+ {
+ GlHandle[] h = new GlHandle[count];
+ fixed (GlHandle* hptr = h) {
+ _context->glGenVertexArrays(count, (uint*)hptr);
+ }
+ return h;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SetVertexAttribute(
+ uint index,
+ int size,
+ TypeCode t,
+ bool normalized,
+ int stride,
+ int pointer
+ )
+ {
+ uint type = GraphicFramework.GLtype[(int)t];
+ _context->glVertexAttribPointer(index, size, type, (byte)(normalized ? 1 : 0), stride,
+ (nint*)pointer);
+ _context->glEnableVertexAttribArray(index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttributeDivisor(
+ uint layoutIndex,
+ uint divisor
+ )
+ {
+ _context->glVertexAttribDivisor(layoutIndex, divisor);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/GlCommandHistory.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/GlCommandHistory.g.cs
new file mode 100644
index 00000000..40eb31cd
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/GlCommandHistory.g.cs
@@ -0,0 +1,1027 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Command availability history
+//
+using System;
+using System.Collections.Frozen;
+using System.Collections.Generic;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ internal enum CommandHistoryAction { Added, Removed }
+
+ internal readonly record struct CommandHistoryEntry(string Version, CommandHistoryAction Action);
+
+ internal static class GlCommandHistory
+ {
+ internal static readonly FrozenDictionary History = new Dictionary(StringComparer.Ordinal)
+ {
+ { "glAccum", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glActiveShaderProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glActiveTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glAlphaFunc", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glAreTexturesResident", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glArrayElement", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glAttachShader", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glBegin", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glBeginConditionalRender", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBeginQuery", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glBeginQueryIndexed", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glBeginTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBindAttribLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glBindBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glBindBufferBase", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glBindBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glBindBuffersBase", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBindBuffersRange", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBindFragDataLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBindFragDataLocationIndexed", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glBindFramebuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBindImageTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glBindImageTextures", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBindProgramPipeline", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glBindRenderbuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBindSampler", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glBindSamplers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBindTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glBindTextureUnit", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glBindTextures", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBindTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glBindVertexArray", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBindVertexBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glBindVertexBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBitmap", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glBlendColor", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glBlendEquation", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glBlendEquationSeparate", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glBlendEquationSeparatei", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glBlendEquationi", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glBlendFunc", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glBlendFuncSeparate", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glBlendFuncSeparatei", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glBlendFunci", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glBlitFramebuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glBlitNamedFramebuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glBufferData", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glBufferStorage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glCallList", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glCallLists", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glCheckFramebufferStatus", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glCheckNamedFramebufferStatus", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClampColor", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glClear", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glClearAccum", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glClearBufferData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glClearBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glClearBufferfi", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glClearBufferfv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glClearBufferiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glClearBufferuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glClearColor", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glClearDepth", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glClearDepthf", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glClearIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glClearNamedBufferData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClearNamedBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClearNamedFramebufferfi", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClearNamedFramebufferfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClearNamedFramebufferiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClearNamedFramebufferuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClearStencil", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glClearTexImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glClearTexSubImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.4", CommandHistoryAction.Added) } },
+ { "glClientActiveTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glClientWaitSync", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glClipControl", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glClipPlane", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3b", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3bv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3ub", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3ubv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3ui", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3us", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor3usv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4b", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4bv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4ub", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4ubv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4ui", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4us", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColor4usv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColorMask", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glColorMaski", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glColorMaterial", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glColorPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glCompileShader", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glCompressedTexImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glCompressedTexImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glCompressedTexImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glCompressedTexSubImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glCompressedTexSubImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glCompressedTexSubImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glCompressedTextureSubImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCompressedTextureSubImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCompressedTextureSubImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCopyBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glCopyImageSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glCopyNamedBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCopyPixels", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glCopyTexImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glCopyTexImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glCopyTexSubImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glCopyTexSubImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glCopyTexSubImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.2", CommandHistoryAction.Added) } },
+ { "glCopyTextureSubImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCopyTextureSubImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCopyTextureSubImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateFramebuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glCreateProgramPipelines", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateQueries", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateRenderbuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateSamplers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateShader", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glCreateShaderProgramv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glCreateTextures", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateTransformFeedbacks", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCreateVertexArrays", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glCullFace", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glDebugMessageCallback", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glDebugMessageControl", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glDebugMessageInsert", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glDeleteBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glDeleteFramebuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glDeleteLists", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glDeleteProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glDeleteProgramPipelines", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glDeleteQueries", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glDeleteRenderbuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glDeleteSamplers", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glDeleteShader", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glDeleteSync", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glDeleteTextures", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glDeleteTransformFeedbacks", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glDeleteVertexArrays", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glDepthFunc", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glDepthMask", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glDepthRange", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glDepthRangeArrayv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glDepthRangeIndexed", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glDepthRangef", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glDetachShader", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glDisable", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glDisableClientState", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glDisableVertexArrayAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glDisableVertexAttribArray", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glDisablei", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glDispatchCompute", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glDispatchComputeIndirect", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glDrawArrays", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glDrawArraysIndirect", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glDrawArraysInstanced", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glDrawArraysInstancedBaseInstance", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glDrawBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glDrawBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glDrawElements", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glDrawElementsBaseVertex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glDrawElementsIndirect", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glDrawElementsInstanced", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glDrawElementsInstancedBaseInstance", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glDrawElementsInstancedBaseVertex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glDrawElementsInstancedBaseVertexBaseInstance", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glDrawPixels", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glDrawRangeElements", new CommandHistoryEntry[] { new CommandHistoryEntry("1.2", CommandHistoryAction.Added) } },
+ { "glDrawRangeElementsBaseVertex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glDrawTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glDrawTransformFeedbackInstanced", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glDrawTransformFeedbackStream", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glDrawTransformFeedbackStreamInstanced", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glEdgeFlag", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEdgeFlagPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEdgeFlagv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEnable", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glEnableClientState", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEnableVertexArrayAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glEnableVertexAttribArray", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glEnablei", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glEnd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEndConditionalRender", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glEndList", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEndQuery", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glEndQueryIndexed", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glEndTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glEvalCoord1d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord1f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord1fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalCoord2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalMesh1", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalMesh2", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalPoint1", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glEvalPoint2", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFeedbackBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFenceSync", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glFinish", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glFlush", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glFlushMappedBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glFlushMappedNamedBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glFogCoordPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogCoordd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogCoorddv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogCoordf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogCoordfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogi", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFogiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glFramebufferParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glFramebufferRenderbuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glFramebufferTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glFramebufferTexture1D", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glFramebufferTexture2D", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glFramebufferTexture3D", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glFramebufferTextureLayer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glFrontFace", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glFrustum", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGenBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGenFramebuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGenLists", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGenProgramPipelines", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGenQueries", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGenRenderbuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGenSamplers", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGenTextures", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glGenTransformFeedbacks", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGenVertexArrays", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGenerateMipmap", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGenerateTextureMipmap", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetActiveAtomicCounterBufferiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glGetActiveAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetActiveSubroutineName", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetActiveSubroutineUniformName", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetActiveSubroutineUniformiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetActiveUniform", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetActiveUniformBlockName", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetActiveUniformBlockiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetActiveUniformName", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetActiveUniformsiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetAttachedShaders", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetAttribLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetBooleani_v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetBooleanv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetBufferParameteri64v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glGetBufferParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGetBufferPointerv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGetBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGetClipPlane", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetCompressedTexImage", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glGetCompressedTextureImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetCompressedTextureSubImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetDebugMessageLog", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetDoublei_v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetDoublev", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetError", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetFloati_v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetFloatv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetFragDataIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetFragDataLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetFramebufferAttachmentParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetFramebufferParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetGraphicsResetStatus", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetInteger64i_v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glGetInteger64v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glGetIntegeri_v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetIntegerv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetInternalformati64v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetInternalformativ", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glGetLightfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetLightiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetMapdv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetMapfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetMapiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetMaterialfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetMaterialiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetMultisamplefv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glGetNamedBufferParameteri64v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetNamedBufferParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetNamedBufferPointerv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetNamedBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetNamedFramebufferAttachmentParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetNamedFramebufferParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetNamedRenderbufferParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetObjectLabel", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetObjectPtrLabel", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetPixelMapfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetPixelMapuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetPixelMapusv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetPointerv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed), new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetPolygonStipple", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetProgramBinary", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetProgramInfoLog", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetProgramInterfaceiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetProgramPipelineInfoLog", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetProgramPipelineiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetProgramResourceIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetProgramResourceLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetProgramResourceLocationIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetProgramResourceName", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetProgramResourceiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glGetProgramStageiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetProgramiv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetQueryBufferObjecti64v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetQueryBufferObjectiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetQueryBufferObjectui64v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetQueryBufferObjectuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetQueryIndexediv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetQueryObjecti64v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetQueryObjectiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGetQueryObjectui64v", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetQueryObjectuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGetQueryiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glGetRenderbufferParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetSamplerParameterIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetSamplerParameterIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetSamplerParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetSamplerParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glGetShaderInfoLog", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetShaderPrecisionFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetShaderSource", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetShaderiv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetString", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetStringi", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetSubroutineIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetSubroutineUniformLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetSynciv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glGetTexEnvfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetTexEnviv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetTexGendv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetTexGenfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetTexGeniv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glGetTexImage", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetTexLevelParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetTexLevelParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetTexParameterIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetTexParameterIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetTexParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetTexParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glGetTextureImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureLevelParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureLevelParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureParameterIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureParameterIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTextureSubImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTransformFeedbackVarying", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetTransformFeedbacki64_v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTransformFeedbacki_v", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetTransformFeedbackiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetUniformBlockIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetUniformIndices", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glGetUniformLocation", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetUniformSubroutineuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetUniformdv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glGetUniformfv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetUniformiv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetUniformuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetVertexArrayIndexed64iv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetVertexArrayIndexediv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetVertexArrayiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribLdv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribPointerv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribdv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribfv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetVertexAttribiv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glGetnCompressedTexImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetnTexImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetnUniformdv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetnUniformfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetnUniformiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glGetnUniformuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glHint", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glIndexMask", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexdv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexi", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexs", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexsv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexub", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIndexubv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glInitNames", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glInterleavedArrays", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glInvalidateBufferData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glInvalidateBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glInvalidateFramebuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glInvalidateNamedFramebufferData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glInvalidateNamedFramebufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glInvalidateSubFramebuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glInvalidateTexImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glInvalidateTexSubImage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glIsBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glIsEnabled", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glIsEnabledi", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glIsFramebuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glIsList", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glIsProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glIsProgramPipeline", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glIsQuery", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glIsRenderbuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glIsSampler", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glIsShader", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glIsSync", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glIsTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glIsTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glIsVertexArray", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glLightModelf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLightModelfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLightModeli", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLightModeliv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLightf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLightfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLighti", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLightiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLineStipple", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLineWidth", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glLinkProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glListBase", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLoadIdentity", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLoadMatrixd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLoadMatrixf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLoadName", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLoadTransposeMatrixd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLoadTransposeMatrixf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glLogicOp", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glMap1d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMap1f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMap2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMap2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMapBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glMapBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glMapGrid1d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMapGrid1f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMapGrid2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMapGrid2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMapNamedBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glMapNamedBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glMaterialf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMaterialfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMateriali", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMaterialiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMatrixMode", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMemoryBarrier", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glMemoryBarrierByRegion", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glMinSampleShading", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glMultMatrixd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultMatrixf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultTransposeMatrixd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultTransposeMatrixf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiDrawArrays", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glMultiDrawArraysIndirect", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glMultiDrawArraysIndirectCount", new CommandHistoryEntry[] { new CommandHistoryEntry("4.6", CommandHistoryAction.Added) } },
+ { "glMultiDrawElements", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glMultiDrawElementsBaseVertex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glMultiDrawElementsIndirect", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glMultiDrawElementsIndirectCount", new CommandHistoryEntry[] { new CommandHistoryEntry("4.6", CommandHistoryAction.Added) } },
+ { "glMultiTexCoord1d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord1sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord2sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glMultiTexCoord4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNamedBufferData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedBufferStorage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedBufferSubData", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferDrawBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferDrawBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferReadBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferRenderbuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferTexture", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedFramebufferTextureLayer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedRenderbufferStorage", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNamedRenderbufferStorageMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glNewList", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3b", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3bv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormal3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glNormalPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glObjectLabel", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glObjectPtrLabel", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glOrtho", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPassThrough", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPatchParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glPatchParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glPauseTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glPixelMapfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPixelMapuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPixelMapusv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPixelStoref", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glPixelStorei", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glPixelTransferf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPixelTransferi", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPixelZoom", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPointParameterf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glPointParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glPointParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glPointParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added) } },
+ { "glPointSize", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glPolygonMode", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glPolygonOffset", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glPolygonOffsetClamp", new CommandHistoryEntry[] { new CommandHistoryEntry("4.6", CommandHistoryAction.Added) } },
+ { "glPolygonStipple", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPopAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPopClientAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPopDebugGroup", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glPopMatrix", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPopName", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPrimitiveRestartIndex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glPrioritizeTextures", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glProgramBinary", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1f", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1i", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1iv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1ui", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform1uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2f", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2i", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2ui", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform2uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3f", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3i", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3ui", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform3uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4f", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4i", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4ui", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniform4uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix2x3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix2x3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix2x4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix2x4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix3x2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix3x2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix3x4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix3x4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix4x2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix4x2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix4x3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProgramUniformMatrix4x3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glProvokingVertex", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glPushAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPushClientAttrib", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPushDebugGroup", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glPushMatrix", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glPushName", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glQueryCounter", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glRasterPos2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos2sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRasterPos4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glReadBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glReadPixels", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glReadnPixels", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glRectd", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRectdv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRectf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRectfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRecti", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRectiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRects", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRectsv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glReleaseShaderCompiler", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glRenderMode", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRenderbufferStorage", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glRenderbufferStorageMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glResumeTransformFeedback", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glRotated", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glRotatef", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSampleCoverage", new CommandHistoryEntry[] { new CommandHistoryEntry("1.3", CommandHistoryAction.Added) } },
+ { "glSampleMaski", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glSamplerParameterIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glSamplerParameterIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glSamplerParameterf", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glSamplerParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glSamplerParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glSamplerParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glScaled", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glScalef", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glScissor", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glScissorArrayv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glScissorIndexed", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glScissorIndexedv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glSecondaryColor3b", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3bv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3ub", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3ubv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3ui", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3us", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColor3usv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSecondaryColorPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glSelectBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glShadeModel", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glShaderBinary", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glShaderSource", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glShaderStorageBlockBinding", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glSpecializeShader", new CommandHistoryEntry[] { new CommandHistoryEntry("4.6", CommandHistoryAction.Added) } },
+ { "glStencilFunc", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glStencilFuncSeparate", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glStencilMask", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glStencilMaskSeparate", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glStencilOp", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glStencilOpSeparate", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glTexBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glTexBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glTexCoord1d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord1sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord2sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoord4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexCoordPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexEnvf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexEnvfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexEnvi", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexEnviv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexGend", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexGendv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexGenf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexGenfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexGeni", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexGeniv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTexImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glTexImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glTexImage2DMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glTexImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.2", CommandHistoryAction.Added) } },
+ { "glTexImage3DMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glTexParameterIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glTexParameterIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glTexParameterf", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glTexParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glTexParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glTexParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glTexStorage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glTexStorage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glTexStorage2DMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glTexStorage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.2", CommandHistoryAction.Added) } },
+ { "glTexStorage3DMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glTexSubImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glTexSubImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added) } },
+ { "glTexSubImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("1.2", CommandHistoryAction.Added) } },
+ { "glTextureBarrier", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureParameterIiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureParameterIuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureParameterf", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureParameterfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureParameteri", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureParameteriv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureStorage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureStorage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureStorage2DMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureStorage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureStorage3DMultisample", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureSubImage1D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureSubImage2D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureSubImage3D", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTextureView", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glTransformFeedbackBufferBase", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTransformFeedbackBufferRange", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glTransformFeedbackVaryings", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glTranslated", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glTranslatef", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glUniform1d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform1f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform1fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform1i", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform1iv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform1ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform1uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform2d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform2f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform2i", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform2ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform2uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform3d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform3f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform3i", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform3ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform3uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform4d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniform4f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform4i", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniform4ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniform4uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glUniformBlockBinding", new CommandHistoryEntry[] { new CommandHistoryEntry("3.1", CommandHistoryAction.Added) } },
+ { "glUniformMatrix2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix2x3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix2x3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.1", CommandHistoryAction.Added) } },
+ { "glUniformMatrix2x4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix2x4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.1", CommandHistoryAction.Added) } },
+ { "glUniformMatrix3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix3x2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix3x2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.1", CommandHistoryAction.Added) } },
+ { "glUniformMatrix3x4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix3x4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.1", CommandHistoryAction.Added) } },
+ { "glUniformMatrix4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix4x2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix4x2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.1", CommandHistoryAction.Added) } },
+ { "glUniformMatrix4x3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUniformMatrix4x3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.1", CommandHistoryAction.Added) } },
+ { "glUniformSubroutinesuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.0", CommandHistoryAction.Added) } },
+ { "glUnmapBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.5", CommandHistoryAction.Added) } },
+ { "glUnmapNamedBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glUseProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glUseProgramStages", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glValidateProgram", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glValidateProgramPipeline", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertex2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex2sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertex4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glVertexArrayAttribBinding", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayAttribFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayAttribIFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayAttribLFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayBindingDivisor", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayElementBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayVertexBuffer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexArrayVertexBuffers", new CommandHistoryEntry[] { new CommandHistoryEntry("4.5", CommandHistoryAction.Added) } },
+ { "glVertexAttrib1d", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib1f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib1fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib1s", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib1sv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib2d", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib2f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib2s", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib2sv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib3d", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib3f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib3s", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Nbv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Niv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Nsv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Nub", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Nubv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Nuiv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4Nusv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4bv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4d", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4f", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4fv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4s", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4ubv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttrib4usv", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribBinding", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribDivisor", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribI1i", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI1iv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI1ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI1uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI2i", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI2ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI2uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI3i", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI3ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI3uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4bv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4i", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4iv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4sv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4ubv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribI4usv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribIFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribIPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("3.0", CommandHistoryAction.Added) } },
+ { "glVertexAttribL1d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL1dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL2d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL3d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL4d", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribL4dv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribLFormat", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribLPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glVertexAttribP1ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP1uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP2ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP2uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP3ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP3uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP4ui", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribP4uiv", new CommandHistoryEntry[] { new CommandHistoryEntry("3.3", CommandHistoryAction.Added) } },
+ { "glVertexAttribPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("2.0", CommandHistoryAction.Added) } },
+ { "glVertexBindingDivisor", new CommandHistoryEntry[] { new CommandHistoryEntry("4.3", CommandHistoryAction.Added) } },
+ { "glVertexPointer", new CommandHistoryEntry[] { new CommandHistoryEntry("1.1", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glViewport", new CommandHistoryEntry[] { new CommandHistoryEntry("1.0", CommandHistoryAction.Added) } },
+ { "glViewportArrayv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glViewportIndexedf", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glViewportIndexedfv", new CommandHistoryEntry[] { new CommandHistoryEntry("4.1", CommandHistoryAction.Added) } },
+ { "glWaitSync", new CommandHistoryEntry[] { new CommandHistoryEntry("3.2", CommandHistoryAction.Added) } },
+ { "glWindowPos2d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos2sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3d", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3dv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3f", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3fv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3i", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3iv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3s", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ { "glWindowPos3sv", new CommandHistoryEntry[] { new CommandHistoryEntry("1.4", CommandHistoryAction.Added), new CommandHistoryEntry("3.2", CommandHistoryAction.Removed) } },
+ }.ToFrozenDictionary(StringComparer.Ordinal);
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v3_3.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v3_3.g.cs
new file mode 100644
index 00000000..0503e0b5
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v3_3.g.cs
@@ -0,0 +1,2187 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 3.3
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ActiveTexture(uint texture)
+ {
+ Context.glActiveTexture(texture);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void AttachShader(GlHandle program, GlHandle shader)
+ {
+ Context.glAttachShader(program.Value, shader.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BeginConditionalRender(uint id, uint mode)
+ {
+ Context.glBeginConditionalRender(id, mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BeginQuery(uint target, uint id)
+ {
+ Context.glBeginQuery(target, id);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BeginTransformFeedback(uint primitiveMode)
+ {
+ Context.glBeginTransformFeedback(primitiveMode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindAttribLocation(GlHandle program, uint index, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glBindAttribLocation(program.Value, index, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindBuffer(uint target, GlHandle buffer)
+ {
+ Context.glBindBuffer(target, buffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindBufferBase(uint target, uint index, GlHandle buffer)
+ {
+ Context.glBindBufferBase(target, index, buffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindBufferRange(uint target, uint index, GlHandle buffer, nint offset, nint size)
+ {
+ Context.glBindBufferRange(target, index, buffer.Value, offset, size);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindFragDataLocation(GlHandle program, uint color, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glBindFragDataLocation(program.Value, color, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindFragDataLocationIndexed(GlHandle program, uint colorNumber, uint index, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glBindFragDataLocationIndexed(program.Value, colorNumber, index, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindFramebuffer(uint target, GlHandle framebuffer)
+ {
+ Context.glBindFramebuffer(target, framebuffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindRenderbuffer(uint target, GlHandle renderbuffer)
+ {
+ Context.glBindRenderbuffer(target, renderbuffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindSampler(uint unit, GlHandle sampler)
+ {
+ Context.glBindSampler(unit, sampler.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindTexture(uint target, GlHandle texture)
+ {
+ Context.glBindTexture(target, texture.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindVertexArray(uint array)
+ {
+ Context.glBindVertexArray(array);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendColor(float red, float green, float blue, float alpha)
+ {
+ Context.glBlendColor(red, green, blue, alpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendEquation(uint mode)
+ {
+ Context.glBlendEquation(mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendEquationSeparate(uint modeRGB, uint modeAlpha)
+ {
+ Context.glBlendEquationSeparate(modeRGB, modeAlpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendFunc(uint sfactor, uint dfactor)
+ {
+ Context.glBlendFunc(sfactor, dfactor);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendFuncSeparate(uint sfactorRGB, uint dfactorRGB, uint sfactorAlpha, uint dfactorAlpha)
+ {
+ Context.glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, uint mask, uint filter)
+ {
+ Context.glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BufferData(uint target, nint size, void* data, uint usage)
+ {
+ Context.glBufferData(target, size, data, usage);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BufferSubData(uint target, nint offset, nint size, void* data)
+ {
+ Context.glBufferSubData(target, offset, size, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint CheckFramebufferStatus(uint target)
+ {
+ return Context.glCheckFramebufferStatus(target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClampColor(uint target, uint clamp)
+ {
+ Context.glClampColor(target, clamp);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Clear(uint mask)
+ {
+ Context.glClear(mask);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearBuffer(uint buffer, int drawbuffer, float depth, int stencil)
+ {
+ Context.glClearBufferfi(buffer, drawbuffer, depth, stencil);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearBuffer(uint buffer, int drawbuffer, ReadOnlySpan value)
+ {
+ fixed (float* valuePtr = value)
+ {
+ Context.glClearBufferfv(buffer, drawbuffer, valuePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearBuffer(uint buffer, int drawbuffer, ReadOnlySpan value)
+ {
+ fixed (int* valuePtr = value)
+ {
+ Context.glClearBufferiv(buffer, drawbuffer, valuePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearBuffer(uint buffer, int drawbuffer, ReadOnlySpan value)
+ {
+ fixed (uint* valuePtr = value)
+ {
+ Context.glClearBufferuiv(buffer, drawbuffer, valuePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearColor(float red, float green, float blue, float alpha)
+ {
+ Context.glClearColor(red, green, blue, alpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearDepth(double depth)
+ {
+ Context.glClearDepth(depth);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearStencil(int s)
+ {
+ Context.glClearStencil(s);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint ClientWaitSync(glSync sync, uint flags, ulong timeout)
+ {
+ return Context.glClientWaitSync(sync, flags, timeout);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ColorMask(byte red, byte green, byte blue, byte alpha)
+ {
+ Context.glColorMask(red, green, blue, alpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ColorMask(uint index, byte r, byte g, byte b, byte a)
+ {
+ Context.glColorMaski(index, r, g, b, a);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompileShader(GlHandle shader)
+ {
+ Context.glCompileShader(shader.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTexImage1D(uint target, int level, uint internalformat, int width, int border, int imageSize, void* data)
+ {
+ Context.glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTexImage2D(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, void* data)
+ {
+ Context.glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTexImage3D(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, void* data)
+ {
+ Context.glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTexSubImage1D(uint target, int level, int xoffset, int width, uint format, int imageSize, void* data)
+ {
+ Context.glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, void* data)
+ {
+ Context.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, void* data)
+ {
+ Context.glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyBufferSubData(uint readTarget, uint writeTarget, nint readOffset, nint writeOffset, nint size)
+ {
+ Context.glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTexImage1D(uint target, int level, uint internalformat, int x, int y, int width, int border)
+ {
+ Context.glCopyTexImage1D(target, level, internalformat, x, y, width, border);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTexImage2D(uint target, int level, uint internalformat, int x, int y, int width, int height, int border)
+ {
+ Context.glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTexSubImage1D(uint target, int level, int xoffset, int x, int y, int width)
+ {
+ Context.glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTexSubImage2D(uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height)
+ {
+ Context.glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
+ {
+ Context.glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public GlHandle CreateProgram()
+ {
+ return GlHandle.Create(Context.glCreateProgram());
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public GlHandle CreateShader(uint type)
+ {
+ return GlHandle.Create(Context.glCreateShader(type));
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CullFace(uint mode)
+ {
+ Context.glCullFace(mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteBuffers(ReadOnlySpan buffers)
+ {
+ fixed (uint* buffersPtr = buffers)
+ {
+ Context.glDeleteBuffers(checked((int)buffers.Length), buffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteFramebuffers(ReadOnlySpan framebuffers)
+ {
+ fixed (uint* framebuffersPtr = framebuffers)
+ {
+ Context.glDeleteFramebuffers(checked((int)framebuffers.Length), framebuffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteProgram(GlHandle program)
+ {
+ Context.glDeleteProgram(program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteQueries(ReadOnlySpan ids)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glDeleteQueries(checked((int)ids.Length), idsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteRenderbuffers(ReadOnlySpan renderbuffers)
+ {
+ fixed (uint* renderbuffersPtr = renderbuffers)
+ {
+ Context.glDeleteRenderbuffers(checked((int)renderbuffers.Length), renderbuffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteSamplers(ReadOnlySpan samplers)
+ {
+ fixed (uint* samplersPtr = samplers)
+ {
+ Context.glDeleteSamplers(checked((int)samplers.Length), samplersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteShader(GlHandle shader)
+ {
+ Context.glDeleteShader(shader.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteSync(glSync sync)
+ {
+ Context.glDeleteSync(sync);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteTextures(ReadOnlySpan textures)
+ {
+ fixed (uint* texturesPtr = textures)
+ {
+ Context.glDeleteTextures(checked((int)textures.Length), texturesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteVertexArrays(ReadOnlySpan arrays)
+ {
+ fixed (uint* arraysPtr = arrays)
+ {
+ Context.glDeleteVertexArrays(checked((int)arrays.Length), arraysPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DepthFunc(uint func)
+ {
+ Context.glDepthFunc(func);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DepthMask(byte flag)
+ {
+ Context.glDepthMask(flag);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DepthRange(double n, double f)
+ {
+ Context.glDepthRange(n, f);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DetachShader(GlHandle program, GlHandle shader)
+ {
+ Context.glDetachShader(program.Value, shader.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Disable(uint cap)
+ {
+ Context.glDisable(cap);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DisableVertexAttribArray(uint index)
+ {
+ Context.glDisableVertexAttribArray(index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Disable(uint target, uint index)
+ {
+ Context.glDisablei(target, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawArrays(uint mode, int first, int count)
+ {
+ Context.glDrawArrays(mode, first, count);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawArraysInstanced(uint mode, int first, int count, int instancecount)
+ {
+ Context.glDrawArraysInstanced(mode, first, count, instancecount);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawBuffer(uint buf)
+ {
+ Context.glDrawBuffer(buf);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawBuffers(ReadOnlySpan bufs)
+ {
+ fixed (uint* bufsPtr = bufs)
+ {
+ Context.glDrawBuffers(checked((int)bufs.Length), bufsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElements(uint mode, int count, uint type, void* indices)
+ {
+ Context.glDrawElements(mode, count, type, indices);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsBaseVertex(uint mode, int count, uint type, void* indices, int basevertex)
+ {
+ Context.glDrawElementsBaseVertex(mode, count, type, indices, basevertex);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsInstanced(uint mode, int count, uint type, void* indices, int instancecount)
+ {
+ Context.glDrawElementsInstanced(mode, count, type, indices, instancecount);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsInstancedBaseVertex(uint mode, int count, uint type, void* indices, int instancecount, int basevertex)
+ {
+ Context.glDrawElementsInstancedBaseVertex(mode, count, type, indices, instancecount, basevertex);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawRangeElements(uint mode, uint start, uint end, int count, uint type, void* indices)
+ {
+ Context.glDrawRangeElements(mode, start, end, count, type, indices);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawRangeElementsBaseVertex(uint mode, uint start, uint end, int count, uint type, void* indices, int basevertex)
+ {
+ Context.glDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Enable(uint cap)
+ {
+ Context.glEnable(cap);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void EnableVertexAttribArray(uint index)
+ {
+ Context.glEnableVertexAttribArray(index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Enable(uint target, uint index)
+ {
+ Context.glEnablei(target, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void EndConditionalRender()
+ {
+ Context.glEndConditionalRender();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void EndQuery(uint target)
+ {
+ Context.glEndQuery(target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void EndTransformFeedback()
+ {
+ Context.glEndTransformFeedback();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public glSync FenceSync(uint condition, uint flags)
+ {
+ return Context.glFenceSync(condition, flags);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Finish()
+ {
+ Context.glFinish();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Flush()
+ {
+ Context.glFlush();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FlushMappedBufferRange(uint target, nint offset, nint length)
+ {
+ Context.glFlushMappedBufferRange(target, offset, length);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferRenderbuffer(uint target, uint attachment, uint renderbuffertarget, GlHandle renderbuffer)
+ {
+ Context.glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferTexture(uint target, uint attachment, GlHandle texture, int level)
+ {
+ Context.glFramebufferTexture(target, attachment, texture.Value, level);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferTexture1D(uint target, uint attachment, uint textarget, GlHandle texture, int level)
+ {
+ Context.glFramebufferTexture1D(target, attachment, textarget, texture.Value, level);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferTexture2D(uint target, uint attachment, uint textarget, GlHandle texture, int level)
+ {
+ Context.glFramebufferTexture2D(target, attachment, textarget, texture.Value, level);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferTexture3D(uint target, uint attachment, uint textarget, GlHandle texture, int level, int zoffset)
+ {
+ Context.glFramebufferTexture3D(target, attachment, textarget, texture.Value, level, zoffset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferTextureLayer(uint target, uint attachment, GlHandle texture, int level, int layer)
+ {
+ Context.glFramebufferTextureLayer(target, attachment, texture.Value, level, layer);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FrontFace(uint mode)
+ {
+ Context.glFrontFace(mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenBuffers(Span buffers)
+ {
+ fixed (uint* buffersPtr = buffers)
+ {
+ Context.glGenBuffers(checked((int)buffers.Length), buffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenFramebuffers(Span framebuffers)
+ {
+ fixed (uint* framebuffersPtr = framebuffers)
+ {
+ Context.glGenFramebuffers(checked((int)framebuffers.Length), framebuffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenQueries(Span ids)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glGenQueries(checked((int)ids.Length), idsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenRenderbuffers(Span renderbuffers)
+ {
+ fixed (uint* renderbuffersPtr = renderbuffers)
+ {
+ Context.glGenRenderbuffers(checked((int)renderbuffers.Length), renderbuffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenSamplers(Span samplers)
+ {
+ fixed (uint* samplersPtr = samplers)
+ {
+ Context.glGenSamplers(checked((int)samplers.Length), samplersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenTextures(Span textures)
+ {
+ fixed (uint* texturesPtr = textures)
+ {
+ Context.glGenTextures(checked((int)textures.Length), texturesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenVertexArrays(Span arrays)
+ {
+ fixed (uint* arraysPtr = arrays)
+ {
+ Context.glGenVertexArrays(checked((int)arrays.Length), arraysPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenerateMipmap(uint target)
+ {
+ Context.glGenerateMipmap(target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveAttrib(GlHandle program, uint index, out int length, out int size, out uint type, Span name)
+ {
+ length = default;
+ size = default;
+ type = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (int* sizePtr = &size)
+ {
+ fixed (uint* typePtr = &type)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glGetActiveAttrib(program.Value, index, checked((int)name.Length), lengthPtr, sizePtr, typePtr, namePtr);
+ }
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveUniform(GlHandle program, uint index, out int length, out int size, out uint type, Span name)
+ {
+ length = default;
+ size = default;
+ type = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (int* sizePtr = &size)
+ {
+ fixed (uint* typePtr = &type)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glGetActiveUniform(program.Value, index, checked((int)name.Length), lengthPtr, sizePtr, typePtr, namePtr);
+ }
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveUniformBlockName(GlHandle program, uint uniformBlockIndex, out int length, Span uniformBlockName)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* uniformBlockNamePtr = uniformBlockName)
+ {
+ Context.glGetActiveUniformBlockName(program.Value, uniformBlockIndex, checked((int)uniformBlockName.Length), lengthPtr, uniformBlockNamePtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveUniformBlockiv(GlHandle program, uint uniformBlockIndex, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetActiveUniformBlockiv(program.Value, uniformBlockIndex, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveUniformName(GlHandle program, uint uniformIndex, out int length, Span uniformName)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* uniformNamePtr = uniformName)
+ {
+ Context.glGetActiveUniformName(program.Value, uniformIndex, checked((int)uniformName.Length), lengthPtr, uniformNamePtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveUniformsiv(GlHandle program, ReadOnlySpan uniformIndices, uint pname, Span @params)
+ {
+ fixed (uint* uniformIndicesPtr = uniformIndices)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetActiveUniformsiv(program.Value, checked((int)uniformIndices.Length), uniformIndicesPtr, pname, @paramsPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetAttachedShaders(GlHandle program, out int count, Span shaders)
+ {
+ count = default;
+ fixed (int* countPtr = &count)
+ {
+ fixed (uint* shadersPtr = shaders)
+ {
+ Context.glGetAttachedShaders(program.Value, checked((int)shaders.Length), countPtr, shadersPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetAttribLocation(GlHandle program, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetAttribLocation(program.Value, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetBooleani_v(uint target, uint index, Span data)
+ {
+ fixed (byte* dataPtr = data)
+ {
+ Context.glGetBooleani_v(target, index, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetBooleanv(uint pname, Span data)
+ {
+ fixed (byte* dataPtr = data)
+ {
+ Context.glGetBooleanv(pname, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetBufferParameter(uint target, uint pname, Span @params)
+ {
+ fixed (long* @paramsPtr = @params)
+ {
+ Context.glGetBufferParameteri64v(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetBufferParameter(uint target, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetBufferParameteriv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetBufferPointerv(uint target, uint pname, void** @params)
+ {
+ Context.glGetBufferPointerv(target, pname, @params);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetBufferSubData(uint target, nint offset, nint size, void* data)
+ {
+ Context.glGetBufferSubData(target, offset, size, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetCompressedTexImage(uint target, int level, void* img)
+ {
+ Context.glGetCompressedTexImage(target, level, img);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetDoublev(uint pname, Span data)
+ {
+ fixed (double* dataPtr = data)
+ {
+ Context.glGetDoublev(pname, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint GetError()
+ {
+ return Context.glGetError();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetFloatv(uint pname, Span data)
+ {
+ fixed (float* dataPtr = data)
+ {
+ Context.glGetFloatv(pname, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetFragDataIndex(GlHandle program, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetFragDataIndex(program.Value, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetFragDataLocation(GlHandle program, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetFragDataLocation(program.Value, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetFramebufferAttachmentParameteriv(uint target, uint attachment, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetFramebufferAttachmentParameteriv(target, attachment, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetInteger64i_v(uint target, uint index, Span data)
+ {
+ fixed (long* dataPtr = data)
+ {
+ Context.glGetInteger64i_v(target, index, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetInteger64v(uint pname, Span data)
+ {
+ fixed (long* dataPtr = data)
+ {
+ Context.glGetInteger64v(pname, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetIntegeri_v(uint target, uint index, Span data)
+ {
+ fixed (int* dataPtr = data)
+ {
+ Context.glGetIntegeri_v(target, index, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetIntegerv(uint pname, Span data)
+ {
+ fixed (int* dataPtr = data)
+ {
+ Context.glGetIntegerv(pname, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetMultisamplefv(uint pname, uint index, Span val)
+ {
+ fixed (float* valPtr = val)
+ {
+ Context.glGetMultisamplefv(pname, index, valPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramInfoLog(GlHandle program, out int length, Span infoLog)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* infoLogPtr = infoLog)
+ {
+ Context.glGetProgramInfoLog(program.Value, checked((int)infoLog.Length), lengthPtr, infoLogPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramiv(GlHandle program, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetProgramiv(program.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryObject(uint id, uint pname, Span @params)
+ {
+ fixed (long* @paramsPtr = @params)
+ {
+ Context.glGetQueryObjecti64v(id, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryObject(uint id, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetQueryObjectiv(id, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryObject(uint id, uint pname, Span @params)
+ {
+ fixed (ulong* @paramsPtr = @params)
+ {
+ Context.glGetQueryObjectui64v(id, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryObject(uint id, uint pname, Span @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glGetQueryObjectuiv(id, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryiv(uint target, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetQueryiv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetRenderbufferParameteriv(uint target, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetRenderbufferParameteriv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetSamplerParameterI(GlHandle sampler, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetSamplerParameterIiv(sampler.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetSamplerParameterI(GlHandle sampler, uint pname, Span @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glGetSamplerParameterIuiv(sampler.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetSamplerParameter(GlHandle sampler, uint pname, Span @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetSamplerParameterfv(sampler.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetSamplerParameter(GlHandle sampler, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetSamplerParameteriv(sampler.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetShaderInfoLog(GlHandle shader, out int length, Span infoLog)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* infoLogPtr = infoLog)
+ {
+ Context.glGetShaderInfoLog(shader.Value, checked((int)infoLog.Length), lengthPtr, infoLogPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetShaderSource(GlHandle shader, out int length, Span source)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* sourcePtr = source)
+ {
+ Context.glGetShaderSource(shader.Value, checked((int)source.Length), lengthPtr, sourcePtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetShaderiv(GlHandle shader, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetShaderiv(shader.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte* GetString(uint name)
+ {
+ return Context.glGetString(name);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte* GetString(uint name, uint index)
+ {
+ return Context.glGetStringi(name, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetSynciv(glSync sync, uint pname, out int length, Span values)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (int* valuesPtr = values)
+ {
+ Context.glGetSynciv(sync, pname, checked((int)values.Length), lengthPtr, valuesPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexImage(uint target, int level, uint format, uint type, void* pixels)
+ {
+ Context.glGetTexImage(target, level, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexLevelParameter(uint target, int level, uint pname, Span @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetTexLevelParameterfv(target, level, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexLevelParameter(uint target, int level, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetTexLevelParameteriv(target, level, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexParameterI(uint target, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetTexParameterIiv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexParameterI(uint target, uint pname, Span @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glGetTexParameterIuiv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexParameter(uint target, uint pname, Span @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetTexParameterfv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTexParameter(uint target, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetTexParameteriv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTransformFeedbackVarying(GlHandle program, uint index, out int length, out int size, out uint type, Span name)
+ {
+ length = default;
+ size = default;
+ type = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (int* sizePtr = &size)
+ {
+ fixed (uint* typePtr = &type)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glGetTransformFeedbackVarying(program.Value, index, checked((int)name.Length), lengthPtr, sizePtr, typePtr, namePtr);
+ }
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint GetUniformBlockIndex(GlHandle program, ReadOnlySpan uniformBlockName)
+ {
+ fixed (byte* uniformBlockNamePtr = uniformBlockName)
+ {
+ return Context.glGetUniformBlockIndex(program.Value, uniformBlockNamePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetUniformIndices(GlHandle program, int uniformCount, byte** uniformNames, Span uniformIndices)
+ {
+ fixed (uint* uniformIndicesPtr = uniformIndices)
+ {
+ Context.glGetUniformIndices(program.Value, uniformCount, uniformNames, uniformIndicesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetUniformLocation(GlHandle program, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetUniformLocation(program.Value, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetUniform(GlHandle program, int location, Span @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetUniformfv(program.Value, location, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetUniform(GlHandle program, int location, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetUniformiv(program.Value, location, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetUniform(GlHandle program, int location, Span @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glGetUniformuiv(program.Value, location, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttribI(uint index, uint pname, out int @params)
+ {
+ @params = default;
+ fixed (int* @paramsPtr = &@params)
+ {
+ Context.glGetVertexAttribIiv(index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttribI(uint index, uint pname, out uint @params)
+ {
+ @params = default;
+ fixed (uint* @paramsPtr = &@params)
+ {
+ Context.glGetVertexAttribIuiv(index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttribPointerv(uint index, uint pname, void** pointer)
+ {
+ Context.glGetVertexAttribPointerv(index, pname, pointer);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttrib(uint index, uint pname, Span @params)
+ {
+ if (@params.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(@params));
+ }
+ fixed (double* @paramsPtr = @params)
+ {
+ Context.glGetVertexAttribdv(index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttrib(uint index, uint pname, Span @params)
+ {
+ if (@params.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(@params));
+ }
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetVertexAttribfv(index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttrib(uint index, uint pname, Span @params)
+ {
+ if (@params.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(@params));
+ }
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetVertexAttribiv(index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Hint(uint target, uint mode)
+ {
+ Context.glHint(target, mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsBuffer(GlHandle buffer)
+ {
+ return Context.glIsBuffer(buffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsEnabled(uint cap)
+ {
+ return Context.glIsEnabled(cap);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsEnabled(uint target, uint index)
+ {
+ return Context.glIsEnabledi(target, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsFramebuffer(GlHandle framebuffer)
+ {
+ return Context.glIsFramebuffer(framebuffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsProgram(GlHandle program)
+ {
+ return Context.glIsProgram(program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsQuery(uint id)
+ {
+ return Context.glIsQuery(id);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsRenderbuffer(GlHandle renderbuffer)
+ {
+ return Context.glIsRenderbuffer(renderbuffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsSampler(GlHandle sampler)
+ {
+ return Context.glIsSampler(sampler.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsShader(GlHandle shader)
+ {
+ return Context.glIsShader(shader.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsSync(glSync sync)
+ {
+ return Context.glIsSync(sync);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsTexture(GlHandle texture)
+ {
+ return Context.glIsTexture(texture.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsVertexArray(uint array)
+ {
+ return Context.glIsVertexArray(array);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void LineWidth(float width)
+ {
+ Context.glLineWidth(width);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void LinkProgram(GlHandle program)
+ {
+ Context.glLinkProgram(program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void LogicOp(uint opcode)
+ {
+ Context.glLogicOp(opcode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void* MapBuffer(uint target, uint access)
+ {
+ return Context.glMapBuffer(target, access);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void* MapBufferRange(uint target, nint offset, nint length, uint access)
+ {
+ return Context.glMapBufferRange(target, offset, length, access);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MultiDrawArrays(uint mode, ReadOnlySpan first, ReadOnlySpan count)
+ {
+ if (count.Length != first.Length) {
+ throw new ArgumentException("Span lengths controlled by drawcount must match.", nameof(count));
+ }
+ fixed (int* firstPtr = first)
+ {
+ fixed (int* countPtr = count)
+ {
+ Context.glMultiDrawArrays(mode, firstPtr, countPtr, checked((int)first.Length));
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MultiDrawElements(uint mode, ReadOnlySpan count, uint type, void** indices, int drawcount)
+ {
+ if (count.Length < checked((int)drawcount)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'drawcount'.", nameof(count));
+ }
+ fixed (int* countPtr = count)
+ {
+ Context.glMultiDrawElements(mode, countPtr, type, indices, drawcount);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MultiDrawElementsBaseVertex(uint mode, ReadOnlySpan count, uint type, void** indices, int drawcount, ReadOnlySpan basevertex)
+ {
+ if (count.Length < checked((int)drawcount)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'drawcount'.", nameof(count));
+ }
+ if (basevertex.Length < checked((int)drawcount)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'drawcount'.", nameof(basevertex));
+ }
+ fixed (int* countPtr = count)
+ {
+ fixed (int* basevertexPtr = basevertex)
+ {
+ Context.glMultiDrawElementsBaseVertex(mode, countPtr, type, indices, drawcount, basevertexPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PixelStore(uint pname, float param)
+ {
+ Context.glPixelStoref(pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PixelStore(uint pname, int param)
+ {
+ Context.glPixelStorei(pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PointParameter(uint pname, float param)
+ {
+ Context.glPointParameterf(pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PointParameter(uint pname, ReadOnlySpan @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glPointParameterfv(pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PointParameter(uint pname, int param)
+ {
+ Context.glPointParameteri(pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PointParameter(uint pname, ReadOnlySpan @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glPointParameteriv(pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PointSize(float size)
+ {
+ Context.glPointSize(size);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PolygonMode(uint face, uint mode)
+ {
+ Context.glPolygonMode(face, mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PolygonOffset(float factor, float units)
+ {
+ Context.glPolygonOffset(factor, units);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PrimitiveRestartIndex(uint index)
+ {
+ Context.glPrimitiveRestartIndex(index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ProvokingVertex(uint mode)
+ {
+ Context.glProvokingVertex(mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void QueryCounter(uint id, uint target)
+ {
+ Context.glQueryCounter(id, target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ReadBuffer(uint src)
+ {
+ Context.glReadBuffer(src);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ReadPixels(int x, int y, int width, int height, uint format, uint type, void* pixels)
+ {
+ Context.glReadPixels(x, y, width, height, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void RenderbufferStorage(uint target, uint internalformat, int width, int height)
+ {
+ Context.glRenderbufferStorage(target, internalformat, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void RenderbufferStorageMultisample(uint target, int samples, uint internalformat, int width, int height)
+ {
+ Context.glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SampleCoverage(float value, byte invert)
+ {
+ Context.glSampleCoverage(value, invert);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SampleMaski(uint maskNumber, uint mask)
+ {
+ Context.glSampleMaski(maskNumber, mask);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SamplerParameterI(GlHandle sampler, uint pname, ReadOnlySpan param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glSamplerParameterIiv(sampler.Value, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SamplerParameterI(GlHandle sampler, uint pname, ReadOnlySpan param)
+ {
+ fixed (uint* paramPtr = param)
+ {
+ Context.glSamplerParameterIuiv(sampler.Value, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SamplerParameter(GlHandle sampler, uint pname, float param)
+ {
+ Context.glSamplerParameterf(sampler.Value, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SamplerParameter(GlHandle sampler, uint pname, ReadOnlySpan param)
+ {
+ fixed (float* paramPtr = param)
+ {
+ Context.glSamplerParameterfv(sampler.Value, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SamplerParameter(GlHandle sampler, uint pname, int param)
+ {
+ Context.glSamplerParameteri(sampler.Value, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SamplerParameter(GlHandle sampler, uint pname, ReadOnlySpan param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glSamplerParameteriv(sampler.Value, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Scissor(int x, int y, int width, int height)
+ {
+ Context.glScissor(x, y, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ShaderSource(GlHandle shader, int count, byte** @string, ReadOnlySpan length)
+ {
+ if (length.Length < checked((int)count)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'count'.", nameof(length));
+ }
+ fixed (int* lengthPtr = length)
+ {
+ Context.glShaderSource(shader.Value, count, @string, lengthPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void StencilFunc(uint func, int @ref, uint mask)
+ {
+ Context.glStencilFunc(func, @ref, mask);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void StencilFuncSeparate(uint face, uint func, int @ref, uint mask)
+ {
+ Context.glStencilFuncSeparate(face, func, @ref, mask);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void StencilMask(uint mask)
+ {
+ Context.glStencilMask(mask);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void StencilMaskSeparate(uint face, uint mask)
+ {
+ Context.glStencilMaskSeparate(face, mask);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void StencilOp(uint fail, uint zfail, uint zpass)
+ {
+ Context.glStencilOp(fail, zfail, zpass);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void StencilOpSeparate(uint face, uint sfail, uint dpfail, uint dppass)
+ {
+ Context.glStencilOpSeparate(face, sfail, dpfail, dppass);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexBuffer(uint target, uint internalformat, GlHandle buffer)
+ {
+ Context.glTexBuffer(target, internalformat, buffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexImage1D(uint target, int level, int internalformat, int width, int border, uint format, uint type, void* pixels)
+ {
+ Context.glTexImage1D(target, level, internalformat, width, border, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexImage2D(uint target, int level, int internalformat, int width, int height, int border, uint format, uint type, void* pixels)
+ {
+ Context.glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexImage2DMultisample(uint target, int samples, uint internalformat, int width, int height, byte fixedsamplelocations)
+ {
+ Context.glTexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexImage3D(uint target, int level, int internalformat, int width, int height, int depth, int border, uint format, uint type, void* pixels)
+ {
+ Context.glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexImage3DMultisample(uint target, int samples, uint internalformat, int width, int height, int depth, byte fixedsamplelocations)
+ {
+ Context.glTexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexParameterI(uint target, uint pname, ReadOnlySpan @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glTexParameterIiv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexParameterI(uint target, uint pname, ReadOnlySpan @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glTexParameterIuiv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexParameter(uint target, uint pname, float param)
+ {
+ Context.glTexParameterf(target, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexParameter(uint target, uint pname, ReadOnlySpan @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glTexParameterfv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexParameter(uint target, uint pname, int param)
+ {
+ Context.glTexParameteri(target, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexParameter(uint target, uint pname, ReadOnlySpan @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glTexParameteriv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexSubImage1D(uint target, int level, int xoffset, int width, uint format, uint type, void* pixels)
+ {
+ Context.glTexSubImage1D(target, level, xoffset, width, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, void* pixels)
+ {
+ Context.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, void* pixels)
+ {
+ Context.glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TransformFeedbackVaryings(GlHandle program, int count, byte** varyings, uint bufferMode)
+ {
+ Context.glTransformFeedbackVaryings(program.Value, count, varyings, bufferMode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void UniformBlockBinding(GlHandle program, uint uniformBlockIndex, uint uniformBlockBinding)
+ {
+ Context.glUniformBlockBinding(program.Value, uniformBlockIndex, uniformBlockBinding);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte UnmapBuffer(uint target)
+ {
+ return Context.glUnmapBuffer(target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void UseProgram(GlHandle program)
+ {
+ Context.glUseProgram(program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ValidateProgram(GlHandle program)
+ {
+ Context.glValidateProgram(program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, double x)
+ {
+ Context.glVertexAttrib1d(index, x);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, float x)
+ {
+ Context.glVertexAttrib1f(index, x);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, short x)
+ {
+ Context.glVertexAttrib1s(index, x);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, double x, double y)
+ {
+ Context.glVertexAttrib2d(index, x, y);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, float x, float y)
+ {
+ Context.glVertexAttrib2f(index, x, y);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, short x, short y)
+ {
+ Context.glVertexAttrib2s(index, x, y);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, double x, double y, double z)
+ {
+ Context.glVertexAttrib3d(index, x, y, z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, float x, float y, float z)
+ {
+ Context.glVertexAttrib3f(index, x, y, z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, short x, short y, short z)
+ {
+ Context.glVertexAttrib3s(index, x, y, z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribNormalized(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (sbyte* vPtr = v)
+ {
+ Context.glVertexAttrib4Nbv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribNormalized(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (int* vPtr = v)
+ {
+ Context.glVertexAttrib4Niv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribNormalized(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (short* vPtr = v)
+ {
+ Context.glVertexAttrib4Nsv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribNormalized(uint index, byte x, byte y, byte z, byte w)
+ {
+ Context.glVertexAttrib4Nub(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribNormalized(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (uint* vPtr = v)
+ {
+ Context.glVertexAttrib4Nuiv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribNormalized(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (ushort* vPtr = v)
+ {
+ Context.glVertexAttrib4Nusv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (sbyte* vPtr = v)
+ {
+ Context.glVertexAttrib4bv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, double x, double y, double z, double w)
+ {
+ Context.glVertexAttrib4d(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, float x, float y, float z, float w)
+ {
+ Context.glVertexAttrib4f(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (int* vPtr = v)
+ {
+ Context.glVertexAttrib4iv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, short x, short y, short z, short w)
+ {
+ Context.glVertexAttrib4s(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (byte* vPtr = v)
+ {
+ Context.glVertexAttrib4ubv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (uint* vPtr = v)
+ {
+ Context.glVertexAttrib4uiv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttrib(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (ushort* vPtr = v)
+ {
+ Context.glVertexAttrib4usv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribDivisor(uint index, uint divisor)
+ {
+ Context.glVertexAttribDivisor(index, divisor);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, int x)
+ {
+ Context.glVertexAttribI1i(index, x);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, uint x)
+ {
+ Context.glVertexAttribI1ui(index, x);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, int x, int y)
+ {
+ Context.glVertexAttribI2i(index, x, y);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, uint x, uint y)
+ {
+ Context.glVertexAttribI2ui(index, x, y);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, int x, int y, int z)
+ {
+ Context.glVertexAttribI3i(index, x, y, z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, uint x, uint y, uint z)
+ {
+ Context.glVertexAttribI3ui(index, x, y, z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (sbyte* vPtr = v)
+ {
+ Context.glVertexAttribI4bv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, int x, int y, int z, int w)
+ {
+ Context.glVertexAttribI4i(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (short* vPtr = v)
+ {
+ Context.glVertexAttribI4sv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (byte* vPtr = v)
+ {
+ Context.glVertexAttribI4ubv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, uint x, uint y, uint z, uint w)
+ {
+ Context.glVertexAttribI4ui(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribI(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (ushort* vPtr = v)
+ {
+ Context.glVertexAttribI4usv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribIPointer(uint index, int size, uint type, int stride, void* pointer)
+ {
+ Context.glVertexAttribIPointer(index, size, type, stride, pointer);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribP(uint index, uint type, byte normalized, uint value)
+ {
+ Context.glVertexAttribP1ui(index, type, normalized, value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribP2(uint index, uint type, byte normalized, uint value)
+ {
+ Context.glVertexAttribP2ui(index, type, normalized, value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribP3(uint index, uint type, byte normalized, uint value)
+ {
+ Context.glVertexAttribP3ui(index, type, normalized, value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribP4(uint index, uint type, byte normalized, uint value)
+ {
+ Context.glVertexAttribP4ui(index, type, normalized, value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribPointer(uint index, int size, uint type, byte normalized, int stride, void* pointer)
+ {
+ Context.glVertexAttribPointer(index, size, type, normalized, stride, pointer);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void Viewport(int x, int y, int width, int height)
+ {
+ Context.glViewport(x, y, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void WaitSync(glSync sync, uint flags, ulong timeout)
+ {
+ Context.glWaitSync(sync, flags, timeout);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_0.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_0.g.cs
new file mode 100644
index 00000000..484c5f86
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_0.g.cs
@@ -0,0 +1,238 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 4.0
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BeginQueryIndexed(uint target, uint index, uint id)
+ {
+ Context.glBeginQueryIndexed(target, index, id);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindTransformFeedback(uint target, uint id)
+ {
+ Context.glBindTransformFeedback(target, id);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendEquationSeparate(uint buf, uint modeRGB, uint modeAlpha)
+ {
+ Context.glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendEquation(uint buf, uint mode)
+ {
+ Context.glBlendEquationi(buf, mode);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendFuncSeparate(uint buf, uint srcRGB, uint dstRGB, uint srcAlpha, uint dstAlpha)
+ {
+ Context.glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlendFunc(uint buf, uint src, uint dst)
+ {
+ Context.glBlendFunci(buf, src, dst);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteTransformFeedbacks(ReadOnlySpan ids)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glDeleteTransformFeedbacks(checked((int)ids.Length), idsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawArraysIndirect(uint mode, void* indirect)
+ {
+ Context.glDrawArraysIndirect(mode, indirect);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsIndirect(uint mode, uint type, void* indirect)
+ {
+ Context.glDrawElementsIndirect(mode, type, indirect);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawTransformFeedback(uint mode, uint id)
+ {
+ Context.glDrawTransformFeedback(mode, id);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawTransformFeedbackStream(uint mode, uint id, uint stream)
+ {
+ Context.glDrawTransformFeedbackStream(mode, id, stream);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void EndQueryIndexed(uint target, uint index)
+ {
+ Context.glEndQueryIndexed(target, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenTransformFeedbacks(Span ids)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glGenTransformFeedbacks(checked((int)ids.Length), idsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveSubroutineName(GlHandle program, uint shadertype, uint index, out int length, Span name)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glGetActiveSubroutineName(program.Value, shadertype, index, checked((int)name.Length), lengthPtr, namePtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveSubroutineUniformName(GlHandle program, uint shadertype, uint index, out int length, Span name)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glGetActiveSubroutineUniformName(program.Value, shadertype, index, checked((int)name.Length), lengthPtr, namePtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveSubroutineUniformiv(GlHandle program, uint shadertype, uint index, uint pname, Span values)
+ {
+ fixed (int* valuesPtr = values)
+ {
+ Context.glGetActiveSubroutineUniformiv(program.Value, shadertype, index, pname, valuesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramStageiv(GlHandle program, uint shadertype, uint pname, out int values)
+ {
+ values = default;
+ fixed (int* valuesPtr = &values)
+ {
+ Context.glGetProgramStageiv(program.Value, shadertype, pname, valuesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryIndexediv(uint target, uint index, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetQueryIndexediv(target, index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint GetSubroutineIndex(GlHandle program, uint shadertype, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetSubroutineIndex(program.Value, shadertype, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetSubroutineUniformLocation(GlHandle program, uint shadertype, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetSubroutineUniformLocation(program.Value, shadertype, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetUniformSubroutineuiv(uint shadertype, int location, out uint @params)
+ {
+ @params = default;
+ fixed (uint* @paramsPtr = &@params)
+ {
+ Context.glGetUniformSubroutineuiv(shadertype, location, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetUniform(GlHandle program, int location, Span @params)
+ {
+ fixed (double* @paramsPtr = @params)
+ {
+ Context.glGetUniformdv(program.Value, location, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsTransformFeedback(uint id)
+ {
+ return Context.glIsTransformFeedback(id);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MinSampleShading(float value)
+ {
+ Context.glMinSampleShading(value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PatchParameter(uint pname, ReadOnlySpan values)
+ {
+ fixed (float* valuesPtr = values)
+ {
+ Context.glPatchParameterfv(pname, valuesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PatchParameter(uint pname, int value)
+ {
+ Context.glPatchParameteri(pname, value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PauseTransformFeedback()
+ {
+ Context.glPauseTransformFeedback();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ResumeTransformFeedback()
+ {
+ Context.glResumeTransformFeedback();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void UniformSubroutinesuiv(uint shadertype, ReadOnlySpan indices)
+ {
+ fixed (uint* indicesPtr = indices)
+ {
+ Context.glUniformSubroutinesuiv(shadertype, checked((int)indices.Length), indicesPtr);
+ }
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_1.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_1.g.cs
new file mode 100644
index 00000000..795baf52
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_1.g.cs
@@ -0,0 +1,286 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 4.1
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ActiveShaderProgram(uint pipeline, GlHandle program)
+ {
+ Context.glActiveShaderProgram(pipeline, program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindProgramPipeline(uint pipeline)
+ {
+ Context.glBindProgramPipeline(pipeline);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearDepth(float d)
+ {
+ Context.glClearDepthf(d);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public GlHandle CreateShaderProgramv(uint type, int count, byte** strings)
+ {
+ return GlHandle.Create(Context.glCreateShaderProgramv(type, count, strings));
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DeleteProgramPipelines(ReadOnlySpan pipelines)
+ {
+ fixed (uint* pipelinesPtr = pipelines)
+ {
+ Context.glDeleteProgramPipelines(checked((int)pipelines.Length), pipelinesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DepthRangeArrayv(uint first, int count, ReadOnlySpan v)
+ {
+ fixed (double* vPtr = v)
+ {
+ Context.glDepthRangeArrayv(first, count, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DepthRangeIndexed(uint index, double n, double f)
+ {
+ Context.glDepthRangeIndexed(index, n, f);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DepthRange(float n, float f)
+ {
+ Context.glDepthRangef(n, f);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenProgramPipelines(Span pipelines)
+ {
+ fixed (uint* pipelinesPtr = pipelines)
+ {
+ Context.glGenProgramPipelines(checked((int)pipelines.Length), pipelinesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetDoublei_v(uint target, uint index, Span data)
+ {
+ fixed (double* dataPtr = data)
+ {
+ Context.glGetDoublei_v(target, index, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetFloati_v(uint target, uint index, Span data)
+ {
+ fixed (float* dataPtr = data)
+ {
+ Context.glGetFloati_v(target, index, dataPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramBinary(GlHandle program, int bufSize, out int length, out uint binaryFormat, void* binary)
+ {
+ length = default;
+ binaryFormat = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (uint* binaryFormatPtr = &binaryFormat)
+ {
+ Context.glGetProgramBinary(program.Value, bufSize, lengthPtr, binaryFormatPtr, binary);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramPipelineInfoLog(uint pipeline, out int length, Span infoLog)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* infoLogPtr = infoLog)
+ {
+ Context.glGetProgramPipelineInfoLog(pipeline, checked((int)infoLog.Length), lengthPtr, infoLogPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramPipelineiv(uint pipeline, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetProgramPipelineiv(pipeline, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetShaderPrecisionFormat(uint shadertype, uint precisiontype, Span range, out int precision)
+ {
+ precision = default;
+ if (range.Length < 2) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '2'.", nameof(range));
+ }
+ fixed (int* rangePtr = range)
+ {
+ fixed (int* precisionPtr = &precision)
+ {
+ Context.glGetShaderPrecisionFormat(shadertype, precisiontype, rangePtr, precisionPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexAttribLdv(uint index, uint pname, Span @params)
+ {
+ fixed (double* @paramsPtr = @params)
+ {
+ Context.glGetVertexAttribLdv(index, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public byte IsProgramPipeline(uint pipeline)
+ {
+ return Context.glIsProgramPipeline(pipeline);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ProgramBinary(GlHandle program, uint binaryFormat, void* binary, int length)
+ {
+ Context.glProgramBinary(program.Value, binaryFormat, binary, length);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ProgramParameter(GlHandle program, uint pname, int value)
+ {
+ Context.glProgramParameteri(program.Value, pname, value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ReleaseShaderCompiler()
+ {
+ Context.glReleaseShaderCompiler();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ScissorArrayv(uint first, int count, ReadOnlySpan v)
+ {
+ fixed (int* vPtr = v)
+ {
+ Context.glScissorArrayv(first, count, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ScissorIndexed(uint index, int left, int bottom, int width, int height)
+ {
+ Context.glScissorIndexed(index, left, bottom, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ScissorIndexed(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (int* vPtr = v)
+ {
+ Context.glScissorIndexedv(index, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ShaderBinary(ReadOnlySpan shaders, uint binaryFormat, void* binary, int length)
+ {
+ fixed (uint* shadersPtr = shaders)
+ {
+ Context.glShaderBinary(checked((int)shaders.Length), shadersPtr, binaryFormat, binary, length);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void UseProgramStages(uint pipeline, uint stages, GlHandle program)
+ {
+ Context.glUseProgramStages(pipeline, stages, program.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ValidateProgramPipeline(uint pipeline)
+ {
+ Context.glValidateProgramPipeline(pipeline);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribL(uint index, double x)
+ {
+ Context.glVertexAttribL1d(index, x);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribL(uint index, double x, double y)
+ {
+ Context.glVertexAttribL2d(index, x, y);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribL(uint index, double x, double y, double z)
+ {
+ Context.glVertexAttribL3d(index, x, y, z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribL(uint index, double x, double y, double z, double w)
+ {
+ Context.glVertexAttribL4d(index, x, y, z, w);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribLPointer(uint index, int size, uint type, int stride, void* pointer)
+ {
+ Context.glVertexAttribLPointer(index, size, type, stride, pointer);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ViewportArrayv(uint first, int count, ReadOnlySpan v)
+ {
+ fixed (float* vPtr = v)
+ {
+ Context.glViewportArrayv(first, count, vPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ViewportIndexed(uint index, float x, float y, float w, float h)
+ {
+ Context.glViewportIndexedf(index, x, y, w, h);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ViewportIndexed(uint index, ReadOnlySpan v)
+ {
+ if (v.Length < 4) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression '4'.", nameof(v));
+ }
+ fixed (float* vPtr = v)
+ {
+ Context.glViewportIndexedfv(index, vPtr);
+ }
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_2.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_2.g.cs
new file mode 100644
index 00000000..4d0f9c84
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_2.g.cs
@@ -0,0 +1,93 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 4.2
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindImageTexture(uint unit, GlHandle texture, int level, byte layered, int layer, uint access, uint format)
+ {
+ Context.glBindImageTexture(unit, texture.Value, level, layered, layer, access, format);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawArraysInstancedBaseInstance(uint mode, int first, int count, int instancecount, uint baseinstance)
+ {
+ Context.glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsInstancedBaseInstance(uint mode, int count, uint type, void* indices, int instancecount, uint baseinstance)
+ {
+ Context.glDrawElementsInstancedBaseInstance(mode, count, type, indices, instancecount, baseinstance);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawElementsInstancedBaseVertexBaseInstance(uint mode, int count, uint type, void* indices, int instancecount, int basevertex, uint baseinstance)
+ {
+ Context.glDrawElementsInstancedBaseVertexBaseInstance(mode, count, type, indices, instancecount, basevertex, baseinstance);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawTransformFeedbackInstanced(uint mode, uint id, int instancecount)
+ {
+ Context.glDrawTransformFeedbackInstanced(mode, id, instancecount);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DrawTransformFeedbackStreamInstanced(uint mode, uint id, uint stream, int instancecount)
+ {
+ Context.glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetActiveAtomicCounterBufferiv(GlHandle program, GlHandle bufferIndex, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetActiveAtomicCounterBufferiv(program.Value, bufferIndex.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetInternalformativ(uint target, uint internalformat, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetInternalformativ(target, internalformat, pname, checked((int)@params.Length), @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MemoryBarrier(uint barriers)
+ {
+ Context.glMemoryBarrier(barriers);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexStorage1D(uint target, int levels, uint internalformat, int width)
+ {
+ Context.glTexStorage1D(target, levels, internalformat, width);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexStorage2D(uint target, int levels, uint internalformat, int width, int height)
+ {
+ Context.glTexStorage2D(target, levels, internalformat, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexStorage3D(uint target, int levels, uint internalformat, int width, int height, int depth)
+ {
+ Context.glTexStorage3D(target, levels, internalformat, width, height, depth);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_3.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_3.g.cs
new file mode 100644
index 00000000..134d7495
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_3.g.cs
@@ -0,0 +1,379 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 4.3
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindVertexBuffer(uint bindingindex, GlHandle buffer, nint offset, int stride)
+ {
+ Context.glBindVertexBuffer(bindingindex, buffer.Value, offset, stride);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearBufferData(uint target, uint internalformat, uint format, uint type, void* data)
+ {
+ Context.glClearBufferData(target, internalformat, format, type, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearBufferSubData(uint target, uint internalformat, nint offset, nint size, uint format, uint type, void* data)
+ {
+ Context.glClearBufferSubData(target, internalformat, offset, size, format, type, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyImageSubData(uint srcName, uint srcTarget, int srcLevel, int srcX, int srcY, int srcZ, uint dstName, uint dstTarget, int dstLevel, int dstX, int dstY, int dstZ, int srcWidth, int srcHeight, int srcDepth)
+ {
+ Context.glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DebugMessageCallback(IntPtr callback, void* userParam)
+ {
+ Context.glDebugMessageCallback(callback, userParam);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DebugMessageControl(uint source, uint type, uint severity, ReadOnlySpan ids, byte enabled)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glDebugMessageControl(source, type, severity, checked((int)ids.Length), idsPtr, enabled);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DebugMessageInsert(uint source, uint type, uint id, uint severity, int length, ReadOnlySpan buf)
+ {
+ fixed (byte* bufPtr = buf)
+ {
+ Context.glDebugMessageInsert(source, type, id, severity, length, bufPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DispatchCompute(uint num_groups_x, uint num_groups_y, uint num_groups_z)
+ {
+ Context.glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DispatchComputeIndirect(nint indirect)
+ {
+ Context.glDispatchComputeIndirect(indirect);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FramebufferParameter(uint target, uint pname, int param)
+ {
+ Context.glFramebufferParameteri(target, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint GetDebugMessageLog(Span sources, Span types, Span ids, Span severities, Span lengths, Span messageLog)
+ {
+ if (types.Length != sources.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(types));
+ }
+ if (ids.Length != sources.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(ids));
+ }
+ if (severities.Length != sources.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(severities));
+ }
+ if (lengths.Length != sources.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(lengths));
+ }
+ fixed (uint* sourcesPtr = sources)
+ {
+ fixed (uint* typesPtr = types)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ fixed (uint* severitiesPtr = severities)
+ {
+ fixed (int* lengthsPtr = lengths)
+ {
+ fixed (byte* messageLogPtr = messageLog)
+ {
+ return Context.glGetDebugMessageLog(checked((uint)sources.Length), checked((int)messageLog.Length), sourcesPtr, typesPtr, idsPtr, severitiesPtr, lengthsPtr, messageLogPtr);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetFramebufferParameteriv(uint target, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetFramebufferParameteriv(target, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetInternalformati64v(uint target, uint internalformat, uint pname, Span @params)
+ {
+ fixed (long* @paramsPtr = @params)
+ {
+ Context.glGetInternalformati64v(target, internalformat, pname, checked((int)@params.Length), @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetObjectLabel(uint identifier, uint name, out int length, Span label)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* labelPtr = label)
+ {
+ Context.glGetObjectLabel(identifier, name, checked((int)label.Length), lengthPtr, labelPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetObjectPtrLabel(void* ptr, out int length, Span label)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* labelPtr = label)
+ {
+ Context.glGetObjectPtrLabel(ptr, checked((int)label.Length), lengthPtr, labelPtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetPointerv(uint pname, void** @params)
+ {
+ Context.glGetPointerv(pname, @params);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramInterfaceiv(GlHandle program, uint programInterface, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetProgramInterfaceiv(program.Value, programInterface, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint GetProgramResourceIndex(GlHandle program, uint programInterface, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetProgramResourceIndex(program.Value, programInterface, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetProgramResourceLocation(GlHandle program, uint programInterface, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetProgramResourceLocation(program.Value, programInterface, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int GetProgramResourceLocationIndex(GlHandle program, uint programInterface, ReadOnlySpan name)
+ {
+ fixed (byte* namePtr = name)
+ {
+ return Context.glGetProgramResourceLocationIndex(program.Value, programInterface, namePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramResourceName(GlHandle program, uint programInterface, uint index, out int length, Span name)
+ {
+ length = default;
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (byte* namePtr = name)
+ {
+ Context.glGetProgramResourceName(program.Value, programInterface, index, checked((int)name.Length), lengthPtr, namePtr);
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetProgramResourceiv(GlHandle program, uint programInterface, uint index, ReadOnlySpan props, out int length, Span @params)
+ {
+ length = default;
+ fixed (uint* propsPtr = props)
+ {
+ fixed (int* lengthPtr = &length)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetProgramResourceiv(program.Value, programInterface, index, checked((int)props.Length), propsPtr, checked((int)@params.Length), lengthPtr, @paramsPtr);
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateBufferData(GlHandle buffer)
+ {
+ Context.glInvalidateBufferData(buffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateBufferSubData(GlHandle buffer, nint offset, nint length)
+ {
+ Context.glInvalidateBufferSubData(buffer.Value, offset, length);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateFramebuffer(uint target, ReadOnlySpan attachments)
+ {
+ fixed (uint* attachmentsPtr = attachments)
+ {
+ Context.glInvalidateFramebuffer(target, checked((int)attachments.Length), attachmentsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateSubFramebuffer(uint target, ReadOnlySpan attachments, int x, int y, int width, int height)
+ {
+ fixed (uint* attachmentsPtr = attachments)
+ {
+ Context.glInvalidateSubFramebuffer(target, checked((int)attachments.Length), attachmentsPtr, x, y, width, height);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateTexImage(GlHandle texture, int level)
+ {
+ Context.glInvalidateTexImage(texture.Value, level);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateTexSubImage(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth)
+ {
+ Context.glInvalidateTexSubImage(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MultiDrawArraysIndirect(uint mode, void* indirect, int drawcount, int stride)
+ {
+ Context.glMultiDrawArraysIndirect(mode, indirect, drawcount, stride);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MultiDrawElementsIndirect(uint mode, uint type, void* indirect, int drawcount, int stride)
+ {
+ Context.glMultiDrawElementsIndirect(mode, type, indirect, drawcount, stride);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ObjectLabel(uint identifier, uint name, int length, ReadOnlySpan label)
+ {
+ fixed (byte* labelPtr = label)
+ {
+ Context.glObjectLabel(identifier, name, length, labelPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ObjectPtrLabel(void* ptr, int length, ReadOnlySpan label)
+ {
+ fixed (byte* labelPtr = label)
+ {
+ Context.glObjectPtrLabel(ptr, length, labelPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PopDebugGroup()
+ {
+ Context.glPopDebugGroup();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void PushDebugGroup(uint source, uint id, int length, ReadOnlySpan message)
+ {
+ fixed (byte* messagePtr = message)
+ {
+ Context.glPushDebugGroup(source, id, length, messagePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ShaderStorageBlockBinding(GlHandle program, uint storageBlockIndex, uint storageBlockBinding)
+ {
+ Context.glShaderStorageBlockBinding(program.Value, storageBlockIndex, storageBlockBinding);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexBufferRange(uint target, uint internalformat, GlHandle buffer, nint offset, nint size)
+ {
+ Context.glTexBufferRange(target, internalformat, buffer.Value, offset, size);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexStorage2DMultisample(uint target, int samples, uint internalformat, int width, int height, byte fixedsamplelocations)
+ {
+ Context.glTexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TexStorage3DMultisample(uint target, int samples, uint internalformat, int width, int height, int depth, byte fixedsamplelocations)
+ {
+ Context.glTexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureView(GlHandle texture, uint target, GlHandle origtexture, uint internalformat, uint minlevel, uint numlevels, uint minlayer, uint numlayers)
+ {
+ Context.glTextureView(texture.Value, target, origtexture.Value, internalformat, minlevel, numlevels, minlayer, numlayers);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribBinding(uint attribindex, uint bindingindex)
+ {
+ Context.glVertexAttribBinding(attribindex, bindingindex);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribFormat(uint attribindex, int size, uint type, byte normalized, uint relativeoffset)
+ {
+ Context.glVertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribIFormat(uint attribindex, int size, uint type, uint relativeoffset)
+ {
+ Context.glVertexAttribIFormat(attribindex, size, type, relativeoffset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexAttribLFormat(uint attribindex, int size, uint type, uint relativeoffset)
+ {
+ Context.glVertexAttribLFormat(attribindex, size, type, relativeoffset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void VertexBindingDivisor(uint bindingindex, uint divisor)
+ {
+ Context.glVertexBindingDivisor(bindingindex, divisor);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_4.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_4.g.cs
new file mode 100644
index 00000000..2d4daadf
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_4.g.cs
@@ -0,0 +1,111 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 4.4
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindBuffersBase(uint target, uint first, ReadOnlySpan buffers)
+ {
+ fixed (uint* buffersPtr = buffers)
+ {
+ Context.glBindBuffersBase(target, first, checked((int)buffers.Length), buffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindBuffersRange(uint target, uint first, ReadOnlySpan buffers, ReadOnlySpan offsets, ReadOnlySpan sizes)
+ {
+ if (offsets.Length != buffers.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(offsets));
+ }
+ if (sizes.Length != buffers.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(sizes));
+ }
+ fixed (uint* buffersPtr = buffers)
+ {
+ fixed (nint* offsetsPtr = offsets)
+ {
+ fixed (nint* sizesPtr = sizes)
+ {
+ Context.glBindBuffersRange(target, first, checked((int)buffers.Length), buffersPtr, offsetsPtr, sizesPtr);
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindImageTextures(uint first, ReadOnlySpan textures)
+ {
+ fixed (uint* texturesPtr = textures)
+ {
+ Context.glBindImageTextures(first, checked((int)textures.Length), texturesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindSamplers(uint first, ReadOnlySpan samplers)
+ {
+ fixed (uint* samplersPtr = samplers)
+ {
+ Context.glBindSamplers(first, checked((int)samplers.Length), samplersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindTextures(uint first, ReadOnlySpan textures)
+ {
+ fixed (uint* texturesPtr = textures)
+ {
+ Context.glBindTextures(first, checked((int)textures.Length), texturesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindVertexBuffers(uint first, ReadOnlySpan buffers, ReadOnlySpan offsets, ReadOnlySpan strides)
+ {
+ if (offsets.Length != buffers.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(offsets));
+ }
+ if (strides.Length != buffers.Length) {
+ throw new ArgumentException("Span lengths controlled by count must match.", nameof(strides));
+ }
+ fixed (uint* buffersPtr = buffers)
+ {
+ fixed (nint* offsetsPtr = offsets)
+ {
+ fixed (int* stridesPtr = strides)
+ {
+ Context.glBindVertexBuffers(first, checked((int)buffers.Length), buffersPtr, offsetsPtr, stridesPtr);
+ }
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BufferStorage(uint target, nint size, void* data, uint flags)
+ {
+ Context.glBufferStorage(target, size, data, flags);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearTexImage(GlHandle texture, int level, uint format, uint type, void* data)
+ {
+ Context.glClearTexImage(texture.Value, level, format, type, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearTexSubImage(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, void* data)
+ {
+ Context.glClearTexSubImage(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
+ }
+
+ }
+}
diff --git a/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_5.g.cs b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_5.g.cs
new file mode 100644
index 00000000..6e831635
--- /dev/null
+++ b/src/StgSharp.Graphics/OpenGL/Generated/OpenGLFunction.Raw.v4_5.g.cs
@@ -0,0 +1,822 @@
+//
+// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
+// Version: 4.5
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using StgSharp.Graphics.OpenGL;
+
+namespace StgSharp.Graphics.OpenGL
+{
+ public unsafe partial class OpenGLFunction
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BindTextureUnit(uint unit, GlHandle texture)
+ {
+ Context.glBindTextureUnit(unit, texture.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void BlitNamedFramebuffer(GlHandle readFramebuffer, GlHandle drawFramebuffer, int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, uint mask, uint filter)
+ {
+ Context.glBlitNamedFramebuffer(readFramebuffer.Value, drawFramebuffer.Value, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint CheckNamedFramebufferStatus(GlHandle framebuffer, uint target)
+ {
+ return Context.glCheckNamedFramebufferStatus(framebuffer.Value, target);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearNamedBufferData(GlHandle buffer, uint internalformat, uint format, uint type, void* data)
+ {
+ Context.glClearNamedBufferData(buffer.Value, internalformat, format, type, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearNamedBufferSubData(GlHandle buffer, uint internalformat, nint offset, nint size, uint format, uint type, void* data)
+ {
+ Context.glClearNamedBufferSubData(buffer.Value, internalformat, offset, size, format, type, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearNamedFramebuffer(GlHandle framebuffer, uint buffer, int drawbuffer, float depth, int stencil)
+ {
+ Context.glClearNamedFramebufferfi(framebuffer.Value, buffer, drawbuffer, depth, stencil);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearNamedFramebuffer(GlHandle framebuffer, uint buffer, int drawbuffer, ReadOnlySpan value)
+ {
+ fixed (float* valuePtr = value)
+ {
+ Context.glClearNamedFramebufferfv(framebuffer.Value, buffer, drawbuffer, valuePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearNamedFramebuffer(GlHandle framebuffer, uint buffer, int drawbuffer, ReadOnlySpan value)
+ {
+ fixed (int* valuePtr = value)
+ {
+ Context.glClearNamedFramebufferiv(framebuffer.Value, buffer, drawbuffer, valuePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClearNamedFramebuffer(GlHandle framebuffer, uint buffer, int drawbuffer, ReadOnlySpan value)
+ {
+ fixed (uint* valuePtr = value)
+ {
+ Context.glClearNamedFramebufferuiv(framebuffer.Value, buffer, drawbuffer, valuePtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ClipControl(uint origin, uint depth)
+ {
+ Context.glClipControl(origin, depth);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTextureSubImage1D(GlHandle texture, int level, int xoffset, int width, uint format, int imageSize, void* data)
+ {
+ Context.glCompressedTextureSubImage1D(texture.Value, level, xoffset, width, format, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTextureSubImage2D(GlHandle texture, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, void* data)
+ {
+ Context.glCompressedTextureSubImage2D(texture.Value, level, xoffset, yoffset, width, height, format, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CompressedTextureSubImage3D(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, void* data)
+ {
+ Context.glCompressedTextureSubImage3D(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyNamedBufferSubData(GlHandle readBuffer, GlHandle writeBuffer, nint readOffset, nint writeOffset, nint size)
+ {
+ Context.glCopyNamedBufferSubData(readBuffer.Value, writeBuffer.Value, readOffset, writeOffset, size);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTextureSubImage1D(GlHandle texture, int level, int xoffset, int x, int y, int width)
+ {
+ Context.glCopyTextureSubImage1D(texture.Value, level, xoffset, x, y, width);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTextureSubImage2D(GlHandle texture, int level, int xoffset, int yoffset, int x, int y, int width, int height)
+ {
+ Context.glCopyTextureSubImage2D(texture.Value, level, xoffset, yoffset, x, y, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTextureSubImage3D(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
+ {
+ Context.glCopyTextureSubImage3D(texture.Value, level, xoffset, yoffset, zoffset, x, y, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateBuffers(Span buffers)
+ {
+ fixed (uint* buffersPtr = buffers)
+ {
+ Context.glCreateBuffers(checked((int)buffers.Length), buffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateFramebuffers(Span framebuffers)
+ {
+ fixed (uint* framebuffersPtr = framebuffers)
+ {
+ Context.glCreateFramebuffers(checked((int)framebuffers.Length), framebuffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateProgramPipelines(Span pipelines)
+ {
+ fixed (uint* pipelinesPtr = pipelines)
+ {
+ Context.glCreateProgramPipelines(checked((int)pipelines.Length), pipelinesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateQueries(uint target, Span ids)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glCreateQueries(target, checked((int)ids.Length), idsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateRenderbuffers(Span renderbuffers)
+ {
+ fixed (uint* renderbuffersPtr = renderbuffers)
+ {
+ Context.glCreateRenderbuffers(checked((int)renderbuffers.Length), renderbuffersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateSamplers(Span samplers)
+ {
+ fixed (uint* samplersPtr = samplers)
+ {
+ Context.glCreateSamplers(checked((int)samplers.Length), samplersPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateTextures(uint target, Span textures)
+ {
+ fixed (uint* texturesPtr = textures)
+ {
+ Context.glCreateTextures(target, checked((int)textures.Length), texturesPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateTransformFeedbacks(Span ids)
+ {
+ fixed (uint* idsPtr = ids)
+ {
+ Context.glCreateTransformFeedbacks(checked((int)ids.Length), idsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CreateVertexArrays(Span arrays)
+ {
+ fixed (uint* arraysPtr = arrays)
+ {
+ Context.glCreateVertexArrays(checked((int)arrays.Length), arraysPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void DisableVertexArrayAttrib(uint vaobj, uint index)
+ {
+ Context.glDisableVertexArrayAttrib(vaobj, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void EnableVertexArrayAttrib(uint vaobj, uint index)
+ {
+ Context.glEnableVertexArrayAttrib(vaobj, index);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void FlushMappedNamedBufferRange(GlHandle buffer, nint offset, nint length)
+ {
+ Context.glFlushMappedNamedBufferRange(buffer.Value, offset, length);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GenerateTextureMipmap(GlHandle texture)
+ {
+ Context.glGenerateTextureMipmap(texture.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetCompressedTextureImage(GlHandle texture, int level, int bufSize, void* pixels)
+ {
+ Context.glGetCompressedTextureImage(texture.Value, level, bufSize, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetCompressedTextureSubImage(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int bufSize, void* pixels)
+ {
+ Context.glGetCompressedTextureSubImage(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public uint GetGraphicsResetStatus()
+ {
+ return Context.glGetGraphicsResetStatus();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedBufferParameter(GlHandle buffer, uint pname, Span @params)
+ {
+ fixed (long* @paramsPtr = @params)
+ {
+ Context.glGetNamedBufferParameteri64v(buffer.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedBufferParameter(GlHandle buffer, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetNamedBufferParameteriv(buffer.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedBufferPointerv(GlHandle buffer, uint pname, void** @params)
+ {
+ Context.glGetNamedBufferPointerv(buffer.Value, pname, @params);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedBufferSubData(GlHandle buffer, nint offset, nint size, void* data)
+ {
+ Context.glGetNamedBufferSubData(buffer.Value, offset, size, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedFramebufferAttachmentParameteriv(GlHandle framebuffer, uint attachment, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetNamedFramebufferAttachmentParameteriv(framebuffer.Value, attachment, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedFramebufferParameteriv(GlHandle framebuffer, uint pname, Span param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glGetNamedFramebufferParameteriv(framebuffer.Value, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetNamedRenderbufferParameteriv(GlHandle renderbuffer, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetNamedRenderbufferParameteriv(renderbuffer.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryBufferObject(uint id, GlHandle buffer, uint pname, nint offset)
+ {
+ Context.glGetQueryBufferObjecti64v(id, buffer.Value, pname, offset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryBufferObjectiv(uint id, GlHandle buffer, uint pname, nint offset)
+ {
+ Context.glGetQueryBufferObjectiv(id, buffer.Value, pname, offset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryBufferObjectui64v(uint id, GlHandle buffer, uint pname, nint offset)
+ {
+ Context.glGetQueryBufferObjectui64v(id, buffer.Value, pname, offset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetQueryBufferObjectuiv(uint id, GlHandle buffer, uint pname, nint offset)
+ {
+ Context.glGetQueryBufferObjectuiv(id, buffer.Value, pname, offset);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureImage(GlHandle texture, int level, uint format, uint type, int bufSize, void* pixels)
+ {
+ Context.glGetTextureImage(texture.Value, level, format, type, bufSize, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureLevelParameter(GlHandle texture, int level, uint pname, Span @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetTextureLevelParameterfv(texture.Value, level, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureLevelParameter(GlHandle texture, int level, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetTextureLevelParameteriv(texture.Value, level, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureParameterI(GlHandle texture, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetTextureParameterIiv(texture.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureParameterI(GlHandle texture, uint pname, Span @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glGetTextureParameterIuiv(texture.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureParameter(GlHandle texture, uint pname, Span @params)
+ {
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetTextureParameterfv(texture.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureParameter(GlHandle texture, uint pname, Span @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetTextureParameteriv(texture.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTextureSubImage(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, int bufSize, void* pixels)
+ {
+ Context.glGetTextureSubImage(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTransformFeedbacki64_v(uint xfb, uint pname, uint index, Span param)
+ {
+ fixed (long* paramPtr = param)
+ {
+ Context.glGetTransformFeedbacki64_v(xfb, pname, index, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTransformFeedbacki_v(uint xfb, uint pname, uint index, Span param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glGetTransformFeedbacki_v(xfb, pname, index, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetTransformFeedbackiv(uint xfb, uint pname, Span param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glGetTransformFeedbackiv(xfb, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexArrayIndexed64iv(uint vaobj, uint index, uint pname, Span param)
+ {
+ fixed (long* paramPtr = param)
+ {
+ Context.glGetVertexArrayIndexed64iv(vaobj, index, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexArrayIndexediv(uint vaobj, uint index, uint pname, Span param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glGetVertexArrayIndexediv(vaobj, index, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetVertexArrayiv(uint vaobj, uint pname, Span param)
+ {
+ fixed (int* paramPtr = param)
+ {
+ Context.glGetVertexArrayiv(vaobj, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetnCompressedTexImage(uint target, int lod, int bufSize, void* pixels)
+ {
+ Context.glGetnCompressedTexImage(target, lod, bufSize, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetnTexImage(uint target, int level, uint format, uint type, int bufSize, void* pixels)
+ {
+ Context.glGetnTexImage(target, level, format, type, bufSize, pixels);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetnUniform(GlHandle program, int location, int bufSize, Span @params)
+ {
+ if (@params.Length < checked((int)bufSize / 8)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'bufSize / 8'.", nameof(@params));
+ }
+ fixed (double* @paramsPtr = @params)
+ {
+ Context.glGetnUniformdv(program.Value, location, bufSize, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetnUniform(GlHandle program, int location, int bufSize, Span @params)
+ {
+ if (@params.Length < checked((int)bufSize / 4)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'bufSize / 4'.", nameof(@params));
+ }
+ fixed (float* @paramsPtr = @params)
+ {
+ Context.glGetnUniformfv(program.Value, location, bufSize, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetnUniform(GlHandle program, int location, int bufSize, Span @params)
+ {
+ if (@params.Length < checked((int)bufSize / 4)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'bufSize / 4'.", nameof(@params));
+ }
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glGetnUniformiv(program.Value, location, bufSize, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void GetnUniform(GlHandle program, int location, int bufSize, Span @params)
+ {
+ if (@params.Length < checked((int)bufSize / 4)) {
+ throw new ArgumentException("Span is shorter than the OpenGL length expression 'bufSize / 4'.", nameof(@params));
+ }
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glGetnUniformuiv(program.Value, location, bufSize, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateNamedFramebufferData(GlHandle framebuffer, ReadOnlySpan attachments)
+ {
+ fixed (uint* attachmentsPtr = attachments)
+ {
+ Context.glInvalidateNamedFramebufferData(framebuffer.Value, checked((int)attachments.Length), attachmentsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void InvalidateNamedFramebufferSubData(GlHandle framebuffer, ReadOnlySpan attachments, int x, int y, int width, int height)
+ {
+ fixed (uint* attachmentsPtr = attachments)
+ {
+ Context.glInvalidateNamedFramebufferSubData(framebuffer.Value, checked((int)attachments.Length), attachmentsPtr, x, y, width, height);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void* MapNamedBuffer(GlHandle buffer, uint access)
+ {
+ return Context.glMapNamedBuffer(buffer.Value, access);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void* MapNamedBufferRange(GlHandle buffer, nint offset, nint length, uint access)
+ {
+ return Context.glMapNamedBufferRange(buffer.Value, offset, length, access);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void MemoryBarrierByRegion(uint barriers)
+ {
+ Context.glMemoryBarrierByRegion(barriers);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedBufferData(GlHandle buffer, nint size, void* data, uint usage)
+ {
+ Context.glNamedBufferData(buffer.Value, size, data, usage);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedBufferStorage(GlHandle buffer, nint size, void* data, uint flags)
+ {
+ Context.glNamedBufferStorage(buffer.Value, size, data, flags);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedBufferSubData(GlHandle buffer, nint offset, nint size, void* data)
+ {
+ Context.glNamedBufferSubData(buffer.Value, offset, size, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferDrawBuffer(GlHandle framebuffer, uint buf)
+ {
+ Context.glNamedFramebufferDrawBuffer(framebuffer.Value, buf);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferDrawBuffers(GlHandle framebuffer, ReadOnlySpan bufs)
+ {
+ fixed (uint* bufsPtr = bufs)
+ {
+ Context.glNamedFramebufferDrawBuffers(framebuffer.Value, checked((int)bufs.Length), bufsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferParameter(GlHandle framebuffer, uint pname, int param)
+ {
+ Context.glNamedFramebufferParameteri(framebuffer.Value, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferReadBuffer(GlHandle framebuffer, uint src)
+ {
+ Context.glNamedFramebufferReadBuffer(framebuffer.Value, src);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferRenderbuffer(GlHandle framebuffer, uint attachment, uint renderbuffertarget, GlHandle renderbuffer)
+ {
+ Context.glNamedFramebufferRenderbuffer(framebuffer.Value, attachment, renderbuffertarget, renderbuffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferTexture(GlHandle framebuffer, uint attachment, GlHandle texture, int level)
+ {
+ Context.glNamedFramebufferTexture(framebuffer.Value, attachment, texture.Value, level);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedFramebufferTextureLayer(GlHandle framebuffer, uint attachment, GlHandle texture, int level, int layer)
+ {
+ Context.glNamedFramebufferTextureLayer(framebuffer.Value, attachment, texture.Value, level, layer);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedRenderbufferStorage(GlHandle renderbuffer, uint internalformat, int width, int height)
+ {
+ Context.glNamedRenderbufferStorage(renderbuffer.Value, internalformat, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void NamedRenderbufferStorageMultisample(GlHandle renderbuffer, int samples, uint internalformat, int width, int height)
+ {
+ Context.glNamedRenderbufferStorageMultisample(renderbuffer.Value, samples, internalformat, width, height);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void ReadnPixels(int x, int y, int width, int height, uint format, uint type, int bufSize, void* data)
+ {
+ Context.glReadnPixels(x, y, width, height, format, type, bufSize, data);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureBarrier()
+ {
+ Context.glTextureBarrier();
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureBuffer(GlHandle texture, uint internalformat, GlHandle buffer)
+ {
+ Context.glTextureBuffer(texture.Value, internalformat, buffer.Value);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureBufferRange(GlHandle texture, uint internalformat, GlHandle buffer, nint offset, nint size)
+ {
+ Context.glTextureBufferRange(texture.Value, internalformat, buffer.Value, offset, size);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameterI(GlHandle texture, uint pname, ReadOnlySpan @params)
+ {
+ fixed (int* @paramsPtr = @params)
+ {
+ Context.glTextureParameterIiv(texture.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameterI(GlHandle texture, uint pname, ReadOnlySpan @params)
+ {
+ fixed (uint* @paramsPtr = @params)
+ {
+ Context.glTextureParameterIuiv(texture.Value, pname, @paramsPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameter(GlHandle texture, uint pname, float param)
+ {
+ Context.glTextureParameterf(texture.Value, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameter(GlHandle texture, uint pname, ReadOnlySpan param)
+ {
+ fixed (float* paramPtr = param)
+ {
+ Context.glTextureParameterfv(texture.Value, pname, paramPtr);
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameter(GlHandle texture, uint pname, int param)
+ {
+ Context.glTextureParameteri(texture.Value, pname, param);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void TextureParameter(GlHandle texture, uint pname, ReadOnlySpan