genericed graphic vector design

This commit is contained in:
Youmu Liu
2026-08-28 18:09:56 +08:00
parent 3cba929599
commit 0b2593a5f6
64 changed files with 1890 additions and 2229 deletions
+31
View File
@@ -0,0 +1,31 @@
# Source Projects
This directory contains the production source code, native runtime, supporting applications, and benchmarks for StgSharp. Most managed projects target .NET 8. The native project is built separately with CMake and provides platform and SIMD functionality consumed by managed projects.
## Directory map
| Directory | Purpose |
| --- | --- |
| `StgSharp.Common` | Shared collections, memory management, threading, pipelines, platform abstractions, and other foundational APIs. |
| `StgSharp.Mathematics` | Numeric types, vectors, matrices, geometry, and managed access to accelerated math operations. |
| `StgSharp.Graphics` | OpenGL bindings, rendering infrastructure, shaders, textures, windows, and input integration. |
| `StgSharp.Native` | C native runtime, GLFW/STBI integration, allocators, platform code, and optimized SIMD/matrix kernels. See its own `README.md` for native build details. |
| `StgSharp.RegularAnalysis` | NGRA regular-language analysis, regex processing, intermediate representations, and source-generation infrastructure. |
| `StgSharp.UserInterface` | State-oriented user-interface framework and its incremental source generator. |
| `StgSharp.TerminalDialogue` | Terminal user-interface components and an interactive terminal application. |
| `StgSharp.Benchmark` | BenchmarkDotNet workloads for measuring selected runtime and allocation behavior. |
| `StgSharp.Script` | Retained sources from the earlier EXPRESS implementation. The planned Script layer has not started and is expected to build on NGRA. |
| `StgSharp.Model` | Placeholder project whose design is being reconsidered. |
| `StgSharp.Tools` | Small retained comparison and inspection artifacts; it is not currently a buildable project. |
## Build notes
Build the native library before running managed components that require it:
```powershell
cmake --preset clang-release -S src/StgSharp.Native
cmake --build cmake_build/clang-release
dotnet build StgSharp.sln
```
Managed builds copy an existing native binary when one is available; they do not invoke CMake automatically. Generated OpenGL files under `StgSharp.Graphics/OpenGL/Generated` should be updated through the generator in `tools/StgSharp.GenerateGL`, not edited by hand.
+2 -1
View File
@@ -5,9 +5,10 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Numeric.Graphics;
using System;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
public sealed class Camera
{
@@ -1,75 +0,0 @@
// -----------------------------------------------------------------------------
// file="OpenGLFunction.Buffer"
// 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 BindBuffer(
BufferType bufferType,
GlHandle handle
)
{
_context->glBindBuffer((uint)bufferType, handle.Value);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DeleteBuffer(
GlHandle handle
)
{
_context->glDeleteBuffers(1, &handle.Value);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DeleteBuffers(
ReadOnlySpan<GlHandle> handles
)
{
fixed (GlHandle* handlesPtr = handles) {
_context->glDeleteBuffers(handles.Length, (uint*)handlesPtr);
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public GlHandle[] GenBuffers(
int count
)
{
ArgumentOutOfRangeException.ThrowIfNegative(count);
GlHandle[] handles = new GlHandle[count];
if (handles.Length == 0) {
return handles;
}
fixed (GlHandle* handlesPtr = handles) {
_context->glGenBuffers(count, (uint*)handlesPtr);
}
return handles;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SetBufferData<T>(
BufferType bufferType,
ReadOnlySpan<T> bufferData,
BufferUsage usage
) where T : unmanaged
{
nint sizeInBytes = checked((nint)bufferData.Length * sizeof(T));
fixed (T* bufferPtr = bufferData) {
_context->glBufferData((uint)bufferType, sizeInBytes, bufferPtr, (uint)usage);
}
}
}
}
@@ -23,8 +23,8 @@ namespace StgSharp.Graphics.OpenGL
private OpenGLFunction()
{
textureUnitCountGetter = glConst.MAX_TEXTURE_IMAGE_UNITS;
UnusedTextureImageUint = [];
// textureUnitCountGetter = glConst.MAX_TEXTURE_IMAGE_UNITS;
// UnusedTextureImageUint = [];
_attachmentColorRange = new Lazy<int>(
() => GetMaskInteger(glConst.MAX_COLOR_ATTACHMENTS));
}
@@ -1,105 +0,0 @@
// -----------------------------------------------------------------------------
// 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);
}
}
}
@@ -1,154 +0,0 @@
// -----------------------------------------------------------------------------
// 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
{
/// <summary>Generate framebuffer object handles into the supplied storage.</summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GenFrameBuffers(
Span<GlHandle> framebuffers
)
{
if (framebuffers.IsEmpty) {
return;
}
fixed (GlHandle* framebuffersPtr = framebuffers) {
Context.glGenFramebuffers(framebuffers.Length, (uint*)framebuffersPtr);
}
}
/// <summary>Delete framebuffer object handles.</summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DeleteFramebuffers(
ReadOnlySpan<GlHandle> framebuffers
)
{
fixed (GlHandle* framebuffersPtr = framebuffers) {
Context.glDeleteFramebuffers(framebuffers.Length, (uint*)framebuffersPtr);
}
}
/// <summary>
/// Bind a framebuffer object to a framebuffer target.
/// </summary>
/// <param name="target">The framebuffer target of the binding operation.</param>
/// <param name="handle">The framebuffer object handle to bind.</param>
/// <seealso href="https://docs.gl/gl3/glBindFramebuffer" />
[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);
}
/// <summary>Delete one renderbuffer object.</summary>
public unsafe void DeleteRenderBuffer(
GlHandle bufferHandle
)
{
_context->glDeleteRenderbuffers(1, &bufferHandle.Value);
}
/// <summary>Delete renderbuffer object handles.</summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DeleteRenderbuffers(
ReadOnlySpan<GlHandle> renderbuffers
)
{
fixed (GlHandle* renderbuffersPtr = renderbuffers) {
Context.glDeleteRenderbuffers(renderbuffers.Length, (uint*)renderbuffersPtr);
}
}
[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
)
{
ArgumentOutOfRangeException.ThrowIfNegative(count);
GlHandle[] h = new GlHandle[count];
if (h.Length == 0) {
return h;
}
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);
}
}
}
@@ -1,140 +0,0 @@
// -----------------------------------------------------------------------------
// file="OpenGLFunction.Texture"
// 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 ActiveTextureUnit(
uint type
)
{
_context->glActiveTexture(type);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public unsafe GlHandle[] GenTextures(
int count
)
{
ArgumentOutOfRangeException.ThrowIfNegative(count);
GlHandle[] h = new GlHandle[count];
if (h.Length == 0) {
return h;
}
fixed (GlHandle* hptr = h) {
_context->glGenTextures(count, (uint*)hptr);
}
return h;
}
/// <summary>Delete texture object handles.</summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DeleteTextures(
ReadOnlySpan<GlHandle> textures
)
{
fixed (GlHandle* texturesPtr = textures) {
Context.glDeleteTextures(textures.Length, (uint*)texturesPtr);
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public unsafe void GetTextureImage<T>(
Texture2DTarget target,
int level,
FrameBufferChannel channel,
PixelChannelLayout channelLayout,
Span<T> destination
) where T : unmanaged
{
fixed (T* tptr = destination) {
_context->glGetTexImage((uint)target, level, (uint)channel, (uint)channelLayout,
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<T>(
(int X, int Y) beginPosition,
(int width, int height) size,
FrameBufferChannel format,
PixelChannelLayout dataType,
Span<T> destination
) where T : unmanaged
{
fixed (T* destinationPtr = destination) {
_context->glReadPixels(beginPosition.X, beginPosition.Y, size.width, size.height,
(uint)format, (uint)dataType, destinationPtr);
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureImage2d(
Texture2DTarget target,
int level,
int internalFormat,
int width,
int height,
FrameBufferChannel format,
PixelChannelLayout type
)
{
_context->glTexImage2D((uint)target, level, internalFormat, width, height, 0,
(uint)format, (uint)type, (void*)0);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureImage2d<T>(
Texture2DTarget target,
int level,
int internalFormat,
int width,
int height,
FrameBufferChannel format,
PixelChannelLayout type,
ReadOnlySpan<T> pixels
) where T : unmanaged
{
fixed (T* pixelPtr = pixels) {
_context->glTexImage2D((uint)target, level, internalFormat, width, height, 0,
(uint)format, (uint)type, pixelPtr);
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameter(
int target,
uint pname,
int param
)
{
_context->glTexParameteri((uint)target, pname, param);
}
}
}
@@ -1,71 +0,0 @@
// -----------------------------------------------------------------------------
// file="OpenGLFunction.TextureUnits"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
namespace StgSharp.Graphics.OpenGL
{
public partial class OpenGLFunction
{
private readonly int textureUnitCountGetter;
public int TextureUnitCount => textureUnitCountGetter;
private ConcurrentQueue<TextureUnit> UnusedTextureImageUint
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get;
} = [];
internal void ReturnAvailableUnit(
IEnumerable<TextureUnit> source
)
{
int v = glConst.TEXTURE0 + TextureUnitCount;
foreach (TextureUnit unit in source)
{
if ((int)unit > v) {
throw new InvalidOperationException(
"Source contains texture unit beyond context support.");
}
}
}
internal int TryGetAvailableTextureUnit(
int count,
out IEnumerable<TextureUnit> result
)
{
result = new Queue<TextureUnit>();
for (int i = 0; i < count; i++)
{
if (UnusedTextureImageUint.TryDequeue(out TextureUnit unit))
{
(result as Queue<TextureUnit>)!.Enqueue(unit);
} else
{
return i;
}
}
return count;
}
private ConcurrentQueue<TextureUnit> InitializeUnusedTextureImageUint()
{
ConcurrentQueue<TextureUnit> result = new ConcurrentQueue<TextureUnit>();
for (int index = 0; index < TextureUnitCount; index++) {
result.Enqueue((TextureUnit)(glConst.TEXTURE0 + index));
}
return result;
}
}
}
@@ -1,29 +0,0 @@
// -----------------------------------------------------------------------------
// 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<float, float, float, float> uniform,
Vec4 vec
)
{
ArgumentNullException.ThrowIfNull(uniform);
Context.glUniform4fv(uniform.id.SignedValue, 1, (float*)&vec);
}
}
}
@@ -1,90 +0,0 @@
// -----------------------------------------------------------------------------
// 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(
ReadOnlySpan<GlHandle> arrays
)
{
fixed (GlHandle* arraysPtr = arrays) {
_context->glDeleteVertexArrays(arrays.Length, (uint*)arraysPtr);
}
}
public unsafe GlHandle[] GenVertexArrays(
int count
)
{
ArgumentOutOfRangeException.ThrowIfNegative(count);
GlHandle[] h = new GlHandle[count];
if (h.Length == 0) {
return h;
}
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 = t switch
{
TypeCode.Single => glConst.FLOAT,
TypeCode.Int32 => glConst.INT,
TypeCode.UInt32 => glConst.UNSIGNED_INT,
TypeCode.Int16 => glConst.SHORT,
TypeCode.UInt16 => glConst.UNSIGNED_SHORT,
TypeCode.SByte => glConst.BYTE,
TypeCode.Byte => glConst.UNSIGNED_BYTE,
_ => throw new ArgumentOutOfRangeException(nameof(t), t,
"The type cannot be used as an OpenGL vertex attribute."),
};
_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);
}
}
}
@@ -3,8 +3,8 @@
// Desktop OpenGL forwarding methods introduced through 3.2 and retained by the target core profile.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -103,9 +103,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameter(uint target, uint pname, float param)
public void TextureParameter(uint target, uint pName, float param)
{
__context->glTexParameterf(target, pname, param);
__context->glTexParameterf(target, pName, param);
}
/// <summary>
@@ -114,9 +114,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameter(uint target, uint pname, float* @params)
public void TextureParameter(uint target, uint pName, float* @params)
{
__context->glTexParameterfv(target, pname, @params);
__context->glTexParameterfv(target, pName, @params);
}
/// <summary>
@@ -125,9 +125,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameter(uint target, uint pname, int param)
public void TextureParameter(uint target, uint pName, int param)
{
__context->glTexParameteri(target, pname, param);
__context->glTexParameteri(target, pName, param);
}
/// <summary>
@@ -136,9 +136,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameter(uint target, uint pname, int* @params)
public void TextureParameter(uint target, uint pName, int* @params)
{
__context->glTexParameteriv(target, pname, @params);
__context->glTexParameteriv(target, pName, @params);
}
/// <summary>
@@ -356,9 +356,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPixelStore">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PixelStore(uint pname, float param)
public void PixelStore(uint pName, float param)
{
__context->glPixelStoref(pname, param);
__context->glPixelStoref(pName, param);
}
/// <summary>
@@ -367,9 +367,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPixelStore">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PixelStore(uint pname, int param)
public void PixelStore(uint pName, int param)
{
__context->glPixelStorei(pname, param);
__context->glPixelStorei(pName, param);
}
/// <summary>
@@ -400,11 +400,11 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGet">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetValue(uint pname, Span<byte> values)
public void GetValue(uint pName, Span<byte> values)
{
fixed (byte* __value = values)
{
__context->glGetBooleanv(pname, __value);
__context->glGetBooleanv(pName, __value);
}
}
@@ -414,11 +414,11 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGet">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetValue(uint pname, Span<double> values)
public void GetValue(uint pName, Span<double> values)
{
fixed (double* __value = values)
{
__context->glGetDoublev(pname, __value);
__context->glGetDoublev(pName, __value);
}
}
@@ -439,11 +439,11 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGet">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetValue(uint pname, Span<float> values)
public void GetValue(uint pName, Span<float> values)
{
fixed (float* __value = values)
{
__context->glGetFloatv(pname, __value);
__context->glGetFloatv(pName, __value);
}
}
@@ -453,11 +453,11 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGet">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetValue(uint pname, Span<int> values)
public void GetValue(uint pName, Span<int> values)
{
fixed (int* __value = values)
{
__context->glGetIntegerv(pname, __value);
__context->glGetIntegerv(pName, __value);
}
}
@@ -489,9 +489,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTextureParameter(uint target, uint pname, float* @params)
public void GetTextureParameter(uint target, uint pName, float* @params)
{
__context->glGetTexParameterfv(target, pname, @params);
__context->glGetTexParameterfv(target, pName, @params);
}
/// <summary>
@@ -500,9 +500,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTextureParameter(uint target, uint pname, int* @params)
public void GetTextureParameter(uint target, uint pName, int* @params)
{
__context->glGetTexParameteriv(target, pname, @params);
__context->glGetTexParameteriv(target, pName, @params);
}
/// <summary>
@@ -511,9 +511,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTexLevelParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTextureLevelParameter(uint target, int level, uint pname, float* @params)
public void GetTextureLevelParameter(uint target, int level, uint pName, float* @params)
{
__context->glGetTexLevelParameterfv(target, level, pname, @params);
__context->glGetTexLevelParameterfv(target, level, pName, @params);
}
/// <summary>
@@ -522,9 +522,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTexLevelParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTextureLevelParameter(uint target, int level, uint pname, int* @params)
public void GetTextureLevelParameter(uint target, int level, uint pName, int* @params)
{
__context->glGetTexLevelParameteriv(target, level, pname, @params);
__context->glGetTexLevelParameteriv(target, level, pName, @params);
}
/// <summary>
@@ -588,9 +588,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetPointerv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetPointerv(uint pname, void** @params)
public void GetPointerv(uint pName, void** @params)
{
__context->glGetPointerv(pname, @params);
__context->glGetPointerv(pName, @params);
}
/// <summary>
@@ -632,9 +632,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCopyTexSubImage1D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTexSubImage1D(uint target, int level, int xoffset, int x, int y, int width)
public void CopyTexSubImage1D(uint target, int level, int xOffset, int x, int y, int width)
{
__context->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
__context->glCopyTexSubImage1D(target, level, xOffset, x, y, width);
}
/// <summary>
@@ -643,9 +643,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCopyTexSubImage2D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTexSubImage2D(uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height)
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);
__context->glCopyTexSubImage2D(target, level, xOffset, yOffset, x, y, width, height);
}
/// <summary>
@@ -654,9 +654,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexSubImage1D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TexSubImage1D(uint target, int level, int xoffset, int width, uint format, uint type, void* pixels)
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);
__context->glTexSubImage1D(target, level, xOffset, width, format, type, pixels);
}
/// <summary>
@@ -665,9 +665,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexSubImage2D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, void* pixels)
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);
__context->glTexSubImage2D(target, level, xOffset, yOffset, width, height, format, type, pixels);
}
/// <summary>
@@ -748,9 +748,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexSubImage3D">docs.gl</see>.</para>
/// </summary>
[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)
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);
__context->glTexSubImage3D(target, level, xOffset, yOffset, zOffset, width, height, depth, format, type, pixels);
}
/// <summary>
@@ -759,9 +759,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCopyTexSubImage3D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
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);
__context->glCopyTexSubImage3D(target, level, xOffset, yOffset, zOffset, x, y, width, height);
}
/// <summary>
@@ -825,9 +825,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCompressedTexSubImage3D">docs.gl</see>.</para>
/// </summary>
[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)
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);
__context->glCompressedTexSubImage3D(target, level, xOffset, yOffset, zOffset, width, height, depth, format, imageSize, data);
}
/// <summary>
@@ -836,9 +836,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCompressedTexSubImage2D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CompressedTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, void* data)
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);
__context->glCompressedTexSubImage2D(target, level, xOffset, yOffset, width, height, format, imageSize, data);
}
/// <summary>
@@ -847,9 +847,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCompressedTexSubImage1D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CompressedTexSubImage1D(uint target, int level, int xoffset, int width, uint format, int imageSize, void* data)
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);
__context->glCompressedTexSubImage1D(target, level, xOffset, width, format, imageSize, data);
}
/// <summary>
@@ -902,9 +902,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPointParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PointParameter(uint pname, float param)
public void PointParameter(uint pName, float param)
{
__context->glPointParameterf(pname, param);
__context->glPointParameterf(pName, param);
}
/// <summary>
@@ -913,9 +913,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPointParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PointParameter(uint pname, float* @params)
public void PointParameter(uint pName, float* @params)
{
__context->glPointParameterfv(pname, @params);
__context->glPointParameterfv(pName, @params);
}
/// <summary>
@@ -924,9 +924,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPointParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PointParameter(uint pname, int param)
public void PointParameter(uint pName, int param)
{
__context->glPointParameteri(pname, param);
__context->glPointParameteri(pName, param);
}
/// <summary>
@@ -935,9 +935,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPointParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PointParameter(uint pname, int* @params)
public void PointParameter(uint pName, int* @params)
{
__context->glPointParameteriv(pname, @params);
__context->glPointParameteriv(pName, @params);
}
/// <summary>
@@ -1029,9 +1029,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryiv(uint target, uint pname, int* @params)
public void GetQueryiv(uint target, uint pName, int* @params)
{
__context->glGetQueryiv(target, pname, @params);
__context->glGetQueryiv(target, pName, @params);
}
/// <summary>
@@ -1040,9 +1040,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryObject">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryObject(GlHandle id, uint pname, int* @params)
public void GetQueryObject(GlHandle id, uint pName, int* @params)
{
__context->glGetQueryObjectiv(id.Value, pname, @params);
__context->glGetQueryObjectiv(id.Value, pName, @params);
}
/// <summary>
@@ -1051,9 +1051,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryObject">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryObject(GlHandle id, uint pname, uint* @params)
public void GetQueryObject(GlHandle id, uint pName, uint* @params)
{
__context->glGetQueryObjectuiv(id.Value, pname, @params);
__context->glGetQueryObjectuiv(id.Value, pName, @params);
}
/// <summary>
@@ -1167,9 +1167,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetBufferParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetBufferParameter(uint target, uint pname, int* @params)
public void GetBufferParameter(uint target, uint pName, int* @params)
{
__context->glGetBufferParameteriv(target, pname, @params);
__context->glGetBufferParameteriv(target, pName, @params);
}
/// <summary>
@@ -1178,9 +1178,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetBufferPointerv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetBufferPointerv(uint target, uint pname, void** @params)
public void GetBufferPointerv(uint target, uint pName, void** @params)
{
__context->glGetBufferPointerv(target, pname, @params);
__context->glGetBufferPointerv(target, pName, @params);
}
/// <summary>
@@ -1401,9 +1401,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetProgramiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetProgramiv(GlHandle program, uint pname, int* @params)
public void GetProgramiv(GlHandle program, uint pName, int* @params)
{
__context->glGetProgramiv(program.Value, pname, @params);
__context->glGetProgramiv(program.Value, pName, @params);
}
/// <summary>
@@ -1423,9 +1423,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetShaderiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetShaderiv(GlHandle shader, uint pname, int* @params)
public void GetShaderiv(GlHandle shader, uint pName, int* @params)
{
__context->glGetShaderiv(shader.Value, pname, @params);
__context->glGetShaderiv(shader.Value, pName, @params);
}
/// <summary>
@@ -1489,9 +1489,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttribute(uint index, uint pname, double* @params)
public void GetVertexAttribute(uint index, uint pName, double* @params)
{
__context->glGetVertexAttribdv(index, pname, @params);
__context->glGetVertexAttribdv(index, pName, @params);
}
/// <summary>
@@ -1500,9 +1500,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttribute(uint index, uint pname, float* @params)
public void GetVertexAttribute(uint index, uint pName, float* @params)
{
__context->glGetVertexAttribfv(index, pname, @params);
__context->glGetVertexAttribfv(index, pName, @params);
}
/// <summary>
@@ -1511,9 +1511,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttribute(uint index, uint pname, int* @params)
public void GetVertexAttribute(uint index, uint pName, int* @params)
{
__context->glGetVertexAttribiv(index, pname, @params);
__context->glGetVertexAttribiv(index, pName, @params);
}
/// <summary>
@@ -1522,9 +1522,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttribPointerv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttributePointer(uint index, uint pname, void** pointer)
public void GetVertexAttributePointer(uint index, uint pName, void** pointer)
{
__context->glGetVertexAttribPointerv(index, pname, pointer);
__context->glGetVertexAttribPointerv(index, pName, pointer);
}
/// <summary>
@@ -2280,9 +2280,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttributeInteger(uint index, uint pname, int* @params)
public void GetVertexAttributeInteger(uint index, uint pName, int* @params)
{
__context->glGetVertexAttribIiv(index, pname, @params);
__context->glGetVertexAttribIiv(index, pName, @params);
}
/// <summary>
@@ -2291,9 +2291,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttributeInteger(uint index, uint pname, uint* @params)
public void GetVertexAttributeInteger(uint index, uint pName, uint* @params)
{
__context->glGetVertexAttribIuiv(index, pname, @params);
__context->glGetVertexAttribIuiv(index, pName, @params);
}
/// <summary>
@@ -2572,9 +2572,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameterInteger(uint target, uint pname, int* @params)
public void TextureParameterInteger(uint target, uint pName, int* @params)
{
__context->glTexParameterIiv(target, pname, @params);
__context->glTexParameterIiv(target, pName, @params);
}
/// <summary>
@@ -2583,9 +2583,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureParameterInteger(uint target, uint pname, uint* @params)
public void TextureParameterInteger(uint target, uint pName, uint* @params)
{
__context->glTexParameterIuiv(target, pname, @params);
__context->glTexParameterIuiv(target, pName, @params);
}
/// <summary>
@@ -2594,9 +2594,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTextureParameterInteger(uint target, uint pname, int* @params)
public void GetTextureParameterInteger(uint target, uint pName, int* @params)
{
__context->glGetTexParameterIiv(target, pname, @params);
__context->glGetTexParameterIiv(target, pName, @params);
}
/// <summary>
@@ -2605,9 +2605,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTexParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTextureParameterInteger(uint target, uint pname, uint* @params)
public void GetTextureParameterInteger(uint target, uint pName, uint* @params)
{
__context->glGetTexParameterIuiv(target, pname, @params);
__context->glGetTexParameterIuiv(target, pName, @params);
}
/// <summary>
@@ -2732,9 +2732,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetRenderbufferParameteriv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetRenderBufferParameteriv(uint target, uint pname, int* @params)
public void GetRenderBufferParameteriv(uint target, uint pName, int* @params)
{
__context->glGetRenderbufferParameteriv(target, pname, @params);
__context->glGetRenderbufferParameteriv(target, pName, @params);
}
/// <summary>
@@ -2826,9 +2826,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glFramebufferTexture3D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void FrameBufferTexture3D(uint target, uint attachment, uint textarget, GlHandle texture, int level, int zoffset)
public void FrameBufferTexture3D(uint target, uint attachment, uint textarget, GlHandle texture, int level, int zOffset)
{
__context->glFramebufferTexture3D(target, attachment, textarget, texture.Value, level, zoffset);
__context->glFramebufferTexture3D(target, attachment, textarget, texture.Value, level, zOffset);
}
/// <summary>
@@ -2848,9 +2848,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetFramebufferAttachmentParameteriv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetFrameBufferAttachmentParameteriv(uint target, uint attachment, uint pname, int* @params)
public void GetFrameBufferAttachmentParameteriv(uint target, uint attachment, uint pName, int* @params)
{
__context->glGetFramebufferAttachmentParameteriv(target, attachment, pname, @params);
__context->glGetFramebufferAttachmentParameteriv(target, attachment, pName, @params);
}
/// <summary>
@@ -3041,9 +3041,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetActiveUniformsiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetActiveUniformsiv(GlHandle program, int uniformCount, uint* uniformIndices, uint pname, int* @params)
public void GetActiveUniformsiv(GlHandle program, int uniformCount, uint* uniformIndices, uint pName, int* @params)
{
__context->glGetActiveUniformsiv(program.Value, uniformCount, uniformIndices, pname, @params);
__context->glGetActiveUniformsiv(program.Value, uniformCount, uniformIndices, pName, @params);
}
/// <summary>
@@ -3074,9 +3074,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetActiveUniformBlockiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetActiveUniformBlockiv(GlHandle program, uint uniformBlockIndex, uint pname, int* @params)
public void GetActiveUniformBlockiv(GlHandle program, uint uniformBlockIndex, uint pName, int* @params)
{
__context->glGetActiveUniformBlockiv(program.Value, uniformBlockIndex, pname, @params);
__context->glGetActiveUniformBlockiv(program.Value, uniformBlockIndex, pName, @params);
}
/// <summary>
@@ -3217,11 +3217,11 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGet">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetValue(uint pname, Span<long> values)
public void GetValue(uint pName, Span<long> values)
{
fixed (long* __value = values)
{
__context->glGetInteger64v(pname, __value);
__context->glGetInteger64v(pName, __value);
}
}
@@ -3231,9 +3231,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetSynciv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetSynciv(void* sync, uint pname, int count, int* length, int* values)
public void GetSynciv(void* sync, uint pName, int count, int* length, int* values)
{
__context->glGetSynciv(sync, pname, count, length, values);
__context->glGetSynciv(sync, pName, count, length, values);
}
/// <summary>
@@ -3256,9 +3256,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetBufferParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetBufferParameter(uint target, uint pname, long* @params)
public void GetBufferParameter(uint target, uint pName, long* @params)
{
__context->glGetBufferParameteri64v(target, pname, @params);
__context->glGetBufferParameteri64v(target, pName, @params);
}
/// <summary>
@@ -3300,9 +3300,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetMultisamplefv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetMultisamplefv(uint pname, uint index, float* val)
public void GetMultisamplefv(uint pName, uint index, float* val)
{
__context->glGetMultisamplefv(pname, index, val);
__context->glGetMultisamplefv(pName, index, val);
}
/// <summary>
@@ -3,7 +3,7 @@
// Desktop OpenGL 3.3 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -91,9 +91,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SamplerParameter(GlHandle sampler, uint pname, int param)
public void SamplerParameter(GlHandle sampler, uint pName, int param)
{
__context->glSamplerParameteri(sampler.Value, pname, param);
__context->glSamplerParameteri(sampler.Value, pName, param);
}
/// <summary>
@@ -102,9 +102,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SamplerParameter(GlHandle sampler, uint pname, int* param)
public void SamplerParameter(GlHandle sampler, uint pName, int* param)
{
__context->glSamplerParameteriv(sampler.Value, pname, param);
__context->glSamplerParameteriv(sampler.Value, pName, param);
}
/// <summary>
@@ -113,9 +113,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SamplerParameter(GlHandle sampler, uint pname, float param)
public void SamplerParameter(GlHandle sampler, uint pName, float param)
{
__context->glSamplerParameterf(sampler.Value, pname, param);
__context->glSamplerParameterf(sampler.Value, pName, param);
}
/// <summary>
@@ -124,9 +124,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SamplerParameter(GlHandle sampler, uint pname, float* param)
public void SamplerParameter(GlHandle sampler, uint pName, float* param)
{
__context->glSamplerParameterfv(sampler.Value, pname, param);
__context->glSamplerParameterfv(sampler.Value, pName, param);
}
/// <summary>
@@ -135,9 +135,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SamplerParameterInteger(GlHandle sampler, uint pname, int* param)
public void SamplerParameterInteger(GlHandle sampler, uint pName, int* param)
{
__context->glSamplerParameterIiv(sampler.Value, pname, param);
__context->glSamplerParameterIiv(sampler.Value, pName, param);
}
/// <summary>
@@ -146,9 +146,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void SamplerParameterInteger(GlHandle sampler, uint pname, uint* param)
public void SamplerParameterInteger(GlHandle sampler, uint pName, uint* param)
{
__context->glSamplerParameterIuiv(sampler.Value, pname, param);
__context->glSamplerParameterIuiv(sampler.Value, pName, param);
}
/// <summary>
@@ -157,9 +157,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetSamplerParameter(GlHandle sampler, uint pname, int* @params)
public void GetSamplerParameter(GlHandle sampler, uint pName, int* @params)
{
__context->glGetSamplerParameteriv(sampler.Value, pname, @params);
__context->glGetSamplerParameteriv(sampler.Value, pName, @params);
}
/// <summary>
@@ -168,9 +168,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetSamplerParameterInteger(GlHandle sampler, uint pname, int* @params)
public void GetSamplerParameterInteger(GlHandle sampler, uint pName, int* @params)
{
__context->glGetSamplerParameterIiv(sampler.Value, pname, @params);
__context->glGetSamplerParameterIiv(sampler.Value, pName, @params);
}
/// <summary>
@@ -179,9 +179,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetSamplerParameter(GlHandle sampler, uint pname, float* @params)
public void GetSamplerParameter(GlHandle sampler, uint pName, float* @params)
{
__context->glGetSamplerParameterfv(sampler.Value, pname, @params);
__context->glGetSamplerParameterfv(sampler.Value, pName, @params);
}
/// <summary>
@@ -190,9 +190,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetSamplerParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetSamplerParameterInteger(GlHandle sampler, uint pname, uint* @params)
public void GetSamplerParameterInteger(GlHandle sampler, uint pName, uint* @params)
{
__context->glGetSamplerParameterIuiv(sampler.Value, pname, @params);
__context->glGetSamplerParameterIuiv(sampler.Value, pName, @params);
}
/// <summary>
@@ -212,9 +212,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryObject">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryObject(GlHandle id, uint pname, long* @params)
public void GetQueryObject(GlHandle id, uint pName, long* @params)
{
__context->glGetQueryObjecti64v(id.Value, pname, @params);
__context->glGetQueryObjecti64v(id.Value, pName, @params);
}
/// <summary>
@@ -223,9 +223,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryObject">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryObject(GlHandle id, uint pname, ulong* @params)
public void GetQueryObject(GlHandle id, uint pName, ulong* @params)
{
__context->glGetQueryObjectui64v(id.Value, pname, @params);
__context->glGetQueryObjectui64v(id.Value, pName, @params);
}
/// <summary>
@@ -3,8 +3,8 @@
// Desktop OpenGL 4.0 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -234,9 +234,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetActiveSubroutineUniformiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetActiveSubroutineUniformiv(GlHandle program, uint shadertype, uint index, uint pname, int* values)
public void GetActiveSubroutineUniformiv(GlHandle program, uint shadertype, uint index, uint pName, int* values)
{
__context->glGetActiveSubroutineUniformiv(program.Value, shadertype, index, pname, values);
__context->glGetActiveSubroutineUniformiv(program.Value, shadertype, index, pName, values);
}
/// <summary>
@@ -289,9 +289,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetProgramStageiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetProgramStageiv(GlHandle program, uint shadertype, uint pname, int* values)
public void GetProgramStageiv(GlHandle program, uint shadertype, uint pName, int* values)
{
__context->glGetProgramStageiv(program.Value, shadertype, pname, values);
__context->glGetProgramStageiv(program.Value, shadertype, pName, values);
}
/// <summary>
@@ -300,9 +300,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPatchParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PatchParameter(uint pname, int value)
public void PatchParameter(uint pName, int value)
{
__context->glPatchParameteri(pname, value);
__context->glPatchParameteri(pName, value);
}
/// <summary>
@@ -311,9 +311,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glPatchParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PatchParameter(uint pname, float* values)
public void PatchParameter(uint pName, float* values)
{
__context->glPatchParameterfv(pname, values);
__context->glPatchParameterfv(pName, values);
}
/// <summary>
@@ -438,9 +438,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryIndexediv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryIndexediv(uint target, uint index, uint pname, int* @params)
public void GetQueryIndexediv(uint target, uint index, uint pName, int* @params)
{
__context->glGetQueryIndexediv(target, index, pname, @params);
__context->glGetQueryIndexediv(target, index, pName, @params);
}
}
@@ -3,8 +3,8 @@
// Desktop OpenGL 4.1 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -99,9 +99,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glProgramParameteri">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ProgramParameteri(GlHandle program, uint pname, int value)
public void ProgramParameteri(GlHandle program, uint pName, int value)
{
__context->glProgramParameteri(program.Value, pname, value);
__context->glProgramParameteri(program.Value, pName, value);
}
/// <summary>
@@ -193,9 +193,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetProgramPipelineiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetProgramPipelineiv(GlHandle pipeline, uint pname, int* @params)
public void GetProgramPipelineiv(GlHandle pipeline, uint pName, int* @params)
{
__context->glGetProgramPipelineiv(pipeline.Value, pname, @params);
__context->glGetProgramPipelineiv(pipeline.Value, pName, @params);
}
/// <summary>
@@ -726,9 +726,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexAttributeDouble(uint index, uint pname, double* @params)
public void GetVertexAttributeDouble(uint index, uint pName, double* @params)
{
__context->glGetVertexAttribLdv(index, pname, @params);
__context->glGetVertexAttribLdv(index, pName, @params);
}
/// <summary>
@@ -3,7 +3,7 @@
// Desktop OpenGL 4.2 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -52,9 +52,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetInternalformat">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetInternalFormat(uint target, uint internalFormat, uint pname, int count, int* @params)
public void GetInternalFormat(uint target, uint internalFormat, uint pName, int count, int* @params)
{
__context->glGetInternalformativ(target, internalFormat, pname, count, @params);
__context->glGetInternalformativ(target, internalFormat, pName, count, @params);
}
/// <summary>
@@ -63,9 +63,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetActiveAtomicCounterBufferiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetActiveAtomicCounterBufferiv(GlHandle program, uint bufferIndex, uint pname, int* @params)
public void GetActiveAtomicCounterBufferiv(GlHandle program, uint bufferIndex, uint pName, int* @params)
{
__context->glGetActiveAtomicCounterBufferiv(program.Value, bufferIndex, pname, @params);
__context->glGetActiveAtomicCounterBufferiv(program.Value, bufferIndex, pName, @params);
}
/// <summary>
@@ -3,7 +3,7 @@
// Desktop OpenGL 4.3 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -74,9 +74,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glFramebufferParameteri">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void FrameBufferParameteri(uint target, uint pname, int param)
public void FrameBufferParameteri(uint target, uint pName, int param)
{
__context->glFramebufferParameteri(target, pname, param);
__context->glFramebufferParameteri(target, pName, param);
}
/// <summary>
@@ -85,9 +85,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetFramebufferParameteriv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetFrameBufferParameteriv(uint target, uint pname, int* @params)
public void GetFrameBufferParameteriv(uint target, uint pName, int* @params)
{
__context->glGetFramebufferParameteriv(target, pname, @params);
__context->glGetFramebufferParameteriv(target, pName, @params);
}
/// <summary>
@@ -96,9 +96,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetInternalformat">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetInternalFormat(uint target, uint internalFormat, uint pname, int count, long* @params)
public void GetInternalFormat(uint target, uint internalFormat, uint pName, int count, long* @params)
{
__context->glGetInternalformati64v(target, internalFormat, pname, count, @params);
__context->glGetInternalformati64v(target, internalFormat, pName, count, @params);
}
/// <summary>
@@ -107,9 +107,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glInvalidateTexSubImage">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void InvalidateTexSubImage(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth)
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);
__context->glInvalidateTexSubImage(texture.Value, level, xOffset, yOffset, zOffset, width, height, depth);
}
/// <summary>
@@ -195,9 +195,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetProgramInterfaceiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetProgramInterfaceiv(GlHandle program, uint programInterface, uint pname, int* @params)
public void GetProgramInterfaceiv(GlHandle program, uint programInterface, uint pName, int* @params)
{
__context->glGetProgramInterfaceiv(program.Value, programInterface, pname, @params);
__context->glGetProgramInterfaceiv(program.Value, programInterface, pName, @params);
}
/// <summary>
@@ -3,7 +3,7 @@
// Desktop OpenGL 4.4 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -41,9 +41,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glClearTexSubImage">docs.gl</see>.</para>
/// </summary>
[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)
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);
__context->glClearTexSubImage(texture.Value, level, xOffset, yOffset, zOffset, width, height, depth, format, type, data);
}
/// <summary>
@@ -3,7 +3,7 @@
// Desktop OpenGL 4.5 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -66,9 +66,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTransformFeedbackiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTransformFeedbackiv(GlHandle xfb, uint pname, int* param)
public void GetTransformFeedbackiv(GlHandle xfb, uint pName, int* param)
{
__context->glGetTransformFeedbackiv(xfb.Value, pname, param);
__context->glGetTransformFeedbackiv(xfb.Value, pName, param);
}
/// <summary>
@@ -77,9 +77,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTransformFeedbacki_v">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTransformFeedbacki_v(GlHandle xfb, uint pname, uint index, int* param)
public void GetTransformFeedbacki_v(GlHandle xfb, uint pName, uint index, int* param)
{
__context->glGetTransformFeedbacki_v(xfb.Value, pname, index, param);
__context->glGetTransformFeedbacki_v(xfb.Value, pName, index, param);
}
/// <summary>
@@ -88,9 +88,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTransformFeedbacki64_v">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetTransformFeedbacki64_v(GlHandle xfb, uint pname, uint index, long* param)
public void GetTransformFeedbacki64_v(GlHandle xfb, uint pName, uint index, long* param)
{
__context->glGetTransformFeedbacki64_v(xfb.Value, pname, index, param);
__context->glGetTransformFeedbacki64_v(xfb.Value, pName, index, param);
}
/// <summary>
@@ -223,9 +223,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetNamedBufferParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedBufferParameter(GlHandle buffer, uint pname, int* @params)
public void GetNamedBufferParameter(GlHandle buffer, uint pName, int* @params)
{
__context->glGetNamedBufferParameteriv(buffer.Value, pname, @params);
__context->glGetNamedBufferParameteriv(buffer.Value, pName, @params);
}
/// <summary>
@@ -234,9 +234,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetNamedBufferParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedBufferParameter(GlHandle buffer, uint pname, long* @params)
public void GetNamedBufferParameter(GlHandle buffer, uint pName, long* @params)
{
__context->glGetNamedBufferParameteri64v(buffer.Value, pname, @params);
__context->glGetNamedBufferParameteri64v(buffer.Value, pName, @params);
}
/// <summary>
@@ -245,9 +245,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetNamedBufferPointerv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedBufferPointerv(GlHandle buffer, uint pname, void** @params)
public void GetNamedBufferPointerv(GlHandle buffer, uint pName, void** @params)
{
__context->glGetNamedBufferPointerv(buffer.Value, pname, @params);
__context->glGetNamedBufferPointerv(buffer.Value, pName, @params);
}
/// <summary>
@@ -292,9 +292,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glNamedFramebufferParameteri">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedFrameBufferParameteri(GlHandle frameBuffer, uint pname, int param)
public void NamedFrameBufferParameteri(GlHandle frameBuffer, uint pName, int param)
{
__context->glNamedFramebufferParameteri(frameBuffer.Value, pname, param);
__context->glNamedFramebufferParameteri(frameBuffer.Value, pName, param);
}
/// <summary>
@@ -446,9 +446,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetNamedFramebufferParameteriv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedFrameBufferParameteriv(GlHandle frameBuffer, uint pname, int* param)
public void GetNamedFrameBufferParameteriv(GlHandle frameBuffer, uint pName, int* param)
{
__context->glGetNamedFramebufferParameteriv(frameBuffer.Value, pname, param);
__context->glGetNamedFramebufferParameteriv(frameBuffer.Value, pName, param);
}
/// <summary>
@@ -457,9 +457,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetNamedFramebufferAttachmentParameteriv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedFrameBufferAttachmentParameteriv(GlHandle frameBuffer, uint attachment, uint pname, int* @params)
public void GetNamedFrameBufferAttachmentParameteriv(GlHandle frameBuffer, uint attachment, uint pName, int* @params)
{
__context->glGetNamedFramebufferAttachmentParameteriv(frameBuffer.Value, attachment, pname, @params);
__context->glGetNamedFramebufferAttachmentParameteriv(frameBuffer.Value, attachment, pName, @params);
}
/// <summary>
@@ -504,9 +504,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetNamedRenderbufferParameteriv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedRenderBufferParameteriv(GlHandle renderBuffer, uint pname, int* @params)
public void GetNamedRenderBufferParameteriv(GlHandle renderBuffer, uint pName, int* @params)
{
__context->glGetNamedRenderbufferParameteriv(renderBuffer.Value, pname, @params);
__context->glGetNamedRenderbufferParameteriv(renderBuffer.Value, pName, @params);
}
/// <summary>
@@ -606,9 +606,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureSubImage1D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureSubImage1D(GlHandle texture, int level, int xoffset, int width, uint format, uint type, void* pixels)
public void TextureSubImage1D(GlHandle texture, int level, int xOffset, int width, uint format, uint type, void* pixels)
{
__context->glTextureSubImage1D(texture.Value, level, xoffset, width, format, type, pixels);
__context->glTextureSubImage1D(texture.Value, level, xOffset, width, format, type, pixels);
}
/// <summary>
@@ -617,9 +617,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureSubImage2D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureSubImage2D(GlHandle texture, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, void* pixels)
public void TextureSubImage2D(GlHandle texture, int level, int xOffset, int yOffset, int width, int height, uint format, uint type, void* pixels)
{
__context->glTextureSubImage2D(texture.Value, level, xoffset, yoffset, width, height, format, type, pixels);
__context->glTextureSubImage2D(texture.Value, level, xOffset, yOffset, width, height, format, type, pixels);
}
/// <summary>
@@ -628,9 +628,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureSubImage3D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void TextureSubImage3D(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, void* pixels)
public void TextureSubImage3D(GlHandle texture, int level, int xOffset, int yOffset, int zOffset, int width, int height, int depth, uint format, uint type, void* pixels)
{
__context->glTextureSubImage3D(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
__context->glTextureSubImage3D(texture.Value, level, xOffset, yOffset, zOffset, width, height, depth, format, type, pixels);
}
/// <summary>
@@ -639,9 +639,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCompressedTextureSubImage1D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CompressedTextureSubImage1D(GlHandle texture, int level, int xoffset, int width, uint format, int imageSize, void* data)
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);
__context->glCompressedTextureSubImage1D(texture.Value, level, xOffset, width, format, imageSize, data);
}
/// <summary>
@@ -650,9 +650,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCompressedTextureSubImage2D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CompressedTextureSubImage2D(GlHandle texture, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, void* data)
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);
__context->glCompressedTextureSubImage2D(texture.Value, level, xOffset, yOffset, width, height, format, imageSize, data);
}
/// <summary>
@@ -661,9 +661,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCompressedTextureSubImage3D">docs.gl</see>.</para>
/// </summary>
[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)
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);
__context->glCompressedTextureSubImage3D(texture.Value, level, xOffset, yOffset, zOffset, width, height, depth, format, imageSize, data);
}
/// <summary>
@@ -672,9 +672,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCopyTextureSubImage1D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTextureSubImage1D(GlHandle texture, int level, int xoffset, int x, int y, int width)
public void CopyTextureSubImage1D(GlHandle texture, int level, int xOffset, int x, int y, int width)
{
__context->glCopyTextureSubImage1D(texture.Value, level, xoffset, x, y, width);
__context->glCopyTextureSubImage1D(texture.Value, level, xOffset, x, y, width);
}
/// <summary>
@@ -683,9 +683,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCopyTextureSubImage2D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTextureSubImage2D(GlHandle texture, int level, int xoffset, int yoffset, int x, int y, int width, int height)
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);
__context->glCopyTextureSubImage2D(texture.Value, level, xOffset, yOffset, x, y, width, height);
}
/// <summary>
@@ -694,9 +694,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glCopyTextureSubImage3D">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTextureSubImage3D(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
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);
__context->glCopyTextureSubImage3D(texture.Value, level, xOffset, yOffset, zOffset, x, y, width, height);
}
/// <summary>
@@ -705,9 +705,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedTextureParameter(GlHandle texture, uint pname, float param)
public void NamedTextureParameter(GlHandle texture, uint pName, float param)
{
__context->glTextureParameterf(texture.Value, pname, param);
__context->glTextureParameterf(texture.Value, pName, param);
}
/// <summary>
@@ -716,9 +716,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedTextureParameter(GlHandle texture, uint pname, float* param)
public void NamedTextureParameter(GlHandle texture, uint pName, float* param)
{
__context->glTextureParameterfv(texture.Value, pname, param);
__context->glTextureParameterfv(texture.Value, pName, param);
}
/// <summary>
@@ -727,9 +727,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedTextureParameter(GlHandle texture, uint pname, int param)
public void NamedTextureParameter(GlHandle texture, uint pName, int param)
{
__context->glTextureParameteri(texture.Value, pname, param);
__context->glTextureParameteri(texture.Value, pName, param);
}
/// <summary>
@@ -738,9 +738,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedTextureParameterInteger(GlHandle texture, uint pname, int* @params)
public void NamedTextureParameterInteger(GlHandle texture, uint pName, int* @params)
{
__context->glTextureParameterIiv(texture.Value, pname, @params);
__context->glTextureParameterIiv(texture.Value, pName, @params);
}
/// <summary>
@@ -749,9 +749,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedTextureParameterInteger(GlHandle texture, uint pname, uint* @params)
public void NamedTextureParameterInteger(GlHandle texture, uint pName, uint* @params)
{
__context->glTextureParameterIuiv(texture.Value, pname, @params);
__context->glTextureParameterIuiv(texture.Value, pName, @params);
}
/// <summary>
@@ -760,9 +760,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void NamedTextureParameter(GlHandle texture, uint pname, int* param)
public void NamedTextureParameter(GlHandle texture, uint pName, int* param)
{
__context->glTextureParameteriv(texture.Value, pname, param);
__context->glTextureParameteriv(texture.Value, pName, param);
}
/// <summary>
@@ -815,9 +815,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureLevelParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedTextureLevelParameter(GlHandle texture, int level, uint pname, float* @params)
public void GetNamedTextureLevelParameter(GlHandle texture, int level, uint pName, float* @params)
{
__context->glGetTextureLevelParameterfv(texture.Value, level, pname, @params);
__context->glGetTextureLevelParameterfv(texture.Value, level, pName, @params);
}
/// <summary>
@@ -826,9 +826,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureLevelParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedTextureLevelParameter(GlHandle texture, int level, uint pname, int* @params)
public void GetNamedTextureLevelParameter(GlHandle texture, int level, uint pName, int* @params)
{
__context->glGetTextureLevelParameteriv(texture.Value, level, pname, @params);
__context->glGetTextureLevelParameteriv(texture.Value, level, pName, @params);
}
/// <summary>
@@ -837,9 +837,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedTextureParameter(GlHandle texture, uint pname, float* @params)
public void GetNamedTextureParameter(GlHandle texture, uint pName, float* @params)
{
__context->glGetTextureParameterfv(texture.Value, pname, @params);
__context->glGetTextureParameterfv(texture.Value, pName, @params);
}
/// <summary>
@@ -848,9 +848,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedTextureParameterInteger(GlHandle texture, uint pname, int* @params)
public void GetNamedTextureParameterInteger(GlHandle texture, uint pName, int* @params)
{
__context->glGetTextureParameterIiv(texture.Value, pname, @params);
__context->glGetTextureParameterIiv(texture.Value, pName, @params);
}
/// <summary>
@@ -859,9 +859,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedTextureParameterInteger(GlHandle texture, uint pname, uint* @params)
public void GetNamedTextureParameterInteger(GlHandle texture, uint pName, uint* @params)
{
__context->glGetTextureParameterIuiv(texture.Value, pname, @params);
__context->glGetTextureParameterIuiv(texture.Value, pName, @params);
}
/// <summary>
@@ -870,9 +870,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureParameter">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetNamedTextureParameter(GlHandle texture, uint pname, int* @params)
public void GetNamedTextureParameter(GlHandle texture, uint pName, int* @params)
{
__context->glGetTextureParameteriv(texture.Value, pname, @params);
__context->glGetTextureParameteriv(texture.Value, pName, @params);
}
/// <summary>
@@ -895,9 +895,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glDisableVertexArrayAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DisableVertexArrayAttribute(GlHandle vaobj, uint index)
public void DisableVertexArrayAttribute(GlHandle vertexArray, uint index)
{
__context->glDisableVertexArrayAttrib(vaobj.Value, index);
__context->glDisableVertexArrayAttrib(vertexArray.Value, index);
}
/// <summary>
@@ -906,9 +906,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glEnableVertexArrayAttrib">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void EnableVertexArrayAttribute(GlHandle vaobj, uint index)
public void EnableVertexArrayAttribute(GlHandle vertexArray, uint index)
{
__context->glEnableVertexArrayAttrib(vaobj.Value, index);
__context->glEnableVertexArrayAttrib(vertexArray.Value, index);
}
/// <summary>
@@ -917,9 +917,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexArrayElementBuffer">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayElementBuffer(GlHandle vaobj, GlHandle buffer)
public void VertexArrayElementBuffer(GlHandle vertexArray, GlHandle buffer)
{
__context->glVertexArrayElementBuffer(vaobj.Value, buffer.Value);
__context->glVertexArrayElementBuffer(vertexArray.Value, buffer.Value);
}
/// <summary>
@@ -928,9 +928,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexArrayVertexBuffer">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayVertexBuffer(GlHandle vaobj, uint bindingIndex, GlHandle buffer, nint offset, int stride)
public void VertexArrayVertexBuffer(GlHandle vertexArray, uint bindingIndex, GlHandle buffer, nint offset, int stride)
{
__context->glVertexArrayVertexBuffer(vaobj.Value, bindingIndex, buffer.Value, offset, stride);
__context->glVertexArrayVertexBuffer(vertexArray.Value, bindingIndex, buffer.Value, offset, stride);
}
/// <summary>
@@ -939,11 +939,11 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexArrayVertexBuffers">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayVertexBuffers(GlHandle vaobj, uint first, ReadOnlySpan<GlHandle> buffers, nint* offsets, int* strides)
public void VertexArrayVertexBuffers(GlHandle vertexArray, uint first, ReadOnlySpan<GlHandle> buffers, nint* offsets, int* strides)
{
fixed (GlHandle* __buffers = buffers)
{
__context->glVertexArrayVertexBuffers(vaobj.Value, first, buffers.Length, (uint*)__buffers, offsets, strides);
__context->glVertexArrayVertexBuffers(vertexArray.Value, first, buffers.Length, (uint*)__buffers, offsets, strides);
}
}
@@ -953,9 +953,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexArrayAttribBinding">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayAttributeBinding(GlHandle vaobj, uint attributeIndex, uint bindingIndex)
public void VertexArrayAttributeBinding(GlHandle vertexArray, uint attributeIndex, uint bindingIndex)
{
__context->glVertexArrayAttribBinding(vaobj.Value, attributeIndex, bindingIndex);
__context->glVertexArrayAttribBinding(vertexArray.Value, attributeIndex, bindingIndex);
}
/// <summary>
@@ -964,9 +964,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexAttribFormat">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayAttributeFormat(GlHandle vaobj, uint attributeIndex, int size, uint type, byte normalized, uint relativeOffset)
public void VertexArrayAttributeFormat(GlHandle vertexArray, uint attributeIndex, int size, uint type, byte normalized, uint relativeOffset)
{
__context->glVertexArrayAttribFormat(vaobj.Value, attributeIndex, size, type, normalized, relativeOffset);
__context->glVertexArrayAttribFormat(vertexArray.Value, attributeIndex, size, type, normalized, relativeOffset);
}
/// <summary>
@@ -975,9 +975,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexAttribFormat">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayAttributeIntegerFormat(GlHandle vaobj, uint attributeIndex, int size, uint type, uint relativeOffset)
public void VertexArrayAttributeIntegerFormat(GlHandle vertexArray, uint attributeIndex, int size, uint type, uint relativeOffset)
{
__context->glVertexArrayAttribIFormat(vaobj.Value, attributeIndex, size, type, relativeOffset);
__context->glVertexArrayAttribIFormat(vertexArray.Value, attributeIndex, size, type, relativeOffset);
}
/// <summary>
@@ -986,9 +986,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexAttribFormat">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayAttributeDoubleFormat(GlHandle vaobj, uint attributeIndex, int size, uint type, uint relativeOffset)
public void VertexArrayAttributeDoubleFormat(GlHandle vertexArray, uint attributeIndex, int size, uint type, uint relativeOffset)
{
__context->glVertexArrayAttribLFormat(vaobj.Value, attributeIndex, size, type, relativeOffset);
__context->glVertexArrayAttribLFormat(vertexArray.Value, attributeIndex, size, type, relativeOffset);
}
/// <summary>
@@ -997,9 +997,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glVertexArrayBindingDivisor">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void VertexArrayBindingDivisor(GlHandle vaobj, uint bindingIndex, uint divisor)
public void VertexArrayBindingDivisor(GlHandle vertexArray, uint bindingIndex, uint divisor)
{
__context->glVertexArrayBindingDivisor(vaobj.Value, bindingIndex, divisor);
__context->glVertexArrayBindingDivisor(vertexArray.Value, bindingIndex, divisor);
}
/// <summary>
@@ -1008,9 +1008,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexArrayiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexArrayiv(GlHandle vaobj, uint pname, int* param)
public void GetVertexArrayiv(GlHandle vertexArray, uint pName, int* param)
{
__context->glGetVertexArrayiv(vaobj.Value, pname, param);
__context->glGetVertexArrayiv(vertexArray.Value, pName, param);
}
/// <summary>
@@ -1019,9 +1019,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexArrayIndexediv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexArrayIndexediv(GlHandle vaobj, uint index, uint pname, int* param)
public void GetVertexArrayIndexediv(GlHandle vertexArray, uint index, uint pName, int* param)
{
__context->glGetVertexArrayIndexediv(vaobj.Value, index, pname, param);
__context->glGetVertexArrayIndexediv(vertexArray.Value, index, pName, param);
}
/// <summary>
@@ -1030,9 +1030,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetVertexArrayIndexed64iv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetVertexArrayIndexed64iv(GlHandle vaobj, uint index, uint pname, long* param)
public void GetVertexArrayIndexed64iv(GlHandle vertexArray, uint index, uint pName, long* param)
{
__context->glGetVertexArrayIndexed64iv(vaobj.Value, index, pname, param);
__context->glGetVertexArrayIndexed64iv(vertexArray.Value, index, pName, param);
}
/// <summary>
@@ -1083,9 +1083,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryBufferObjecti64v">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryBufferObjecti64v(GlHandle id, GlHandle buffer, uint pname, nint offset)
public void GetQueryBufferObjecti64v(GlHandle id, GlHandle buffer, uint pName, nint offset)
{
__context->glGetQueryBufferObjecti64v(id.Value, buffer.Value, pname, offset);
__context->glGetQueryBufferObjecti64v(id.Value, buffer.Value, pName, offset);
}
/// <summary>
@@ -1094,9 +1094,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryBufferObjectiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryBufferObjectiv(GlHandle id, GlHandle buffer, uint pname, nint offset)
public void GetQueryBufferObjectiv(GlHandle id, GlHandle buffer, uint pName, nint offset)
{
__context->glGetQueryBufferObjectiv(id.Value, buffer.Value, pname, offset);
__context->glGetQueryBufferObjectiv(id.Value, buffer.Value, pName, offset);
}
/// <summary>
@@ -1105,9 +1105,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryBufferObjectui64v">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryBufferObjectui64v(GlHandle id, GlHandle buffer, uint pname, nint offset)
public void GetQueryBufferObjectui64v(GlHandle id, GlHandle buffer, uint pName, nint offset)
{
__context->glGetQueryBufferObjectui64v(id.Value, buffer.Value, pname, offset);
__context->glGetQueryBufferObjectui64v(id.Value, buffer.Value, pName, offset);
}
/// <summary>
@@ -1116,9 +1116,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetQueryBufferObjectuiv">docs.gl</see>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void GetQueryBufferObjectuiv(GlHandle id, GlHandle buffer, uint pname, nint offset)
public void GetQueryBufferObjectuiv(GlHandle id, GlHandle buffer, uint pName, nint offset)
{
__context->glGetQueryBufferObjectuiv(id.Value, buffer.Value, pname, offset);
__context->glGetQueryBufferObjectuiv(id.Value, buffer.Value, pName, offset);
}
/// <summary>
@@ -1138,9 +1138,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetTextureSubImage">docs.gl</see>.</para>
/// </summary>
[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)
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);
__context->glGetTextureSubImage(texture.Value, level, xOffset, yOffset, zOffset, width, height, depth, format, type, bufSize, pixels);
}
/// <summary>
@@ -1149,9 +1149,9 @@ namespace StgSharp.Graphics.OpenGL
/// <para>See <see href="https://docs.gl/gl4/glGetCompressedTextureSubImage">docs.gl</see>.</para>
/// </summary>
[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)
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);
__context->glGetCompressedTextureSubImage(texture.Value, level, xOffset, yOffset, zOffset, width, height, depth, bufSize, pixels);
}
/// <summary>
@@ -3,7 +3,7 @@
// Desktop OpenGL 4.6 core-profile forwarding methods.
// </auto-generated>
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -5,6 +5,7 @@
namespace StgSharp.Graphics.OpenGL
{
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
public unsafe partial struct OpenglContext
{
internal delegate* unmanaged<uint, uint, void> glActiveShaderProgram;
@@ -0,0 +1,669 @@
// <auto-generated>
// Generated by StgSharp.GenerateGL.
// Native-address shadow of the OpenGL function pointer table.
// </auto-generated>
namespace StgSharp.Graphics.OpenGL
{
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
internal struct glContextShadow
{
internal nint glActiveShaderProgram;
internal nint glActiveTexture;
internal nint glAttachShader;
internal nint glBeginConditionalRender;
internal nint glBeginQuery;
internal nint glBeginQueryIndexed;
internal nint glBeginTransformFeedback;
internal nint glBindAttribLocation;
internal nint glBindBuffer;
internal nint glBindBufferBase;
internal nint glBindBufferRange;
internal nint glBindBuffersBase;
internal nint glBindBuffersRange;
internal nint glBindFragDataLocation;
internal nint glBindFragDataLocationIndexed;
internal nint glBindFramebuffer;
internal nint glBindImageTexture;
internal nint glBindImageTextures;
internal nint glBindProgramPipeline;
internal nint glBindRenderbuffer;
internal nint glBindSampler;
internal nint glBindSamplers;
internal nint glBindTexture;
internal nint glBindTextureUnit;
internal nint glBindTextures;
internal nint glBindTransformFeedback;
internal nint glBindVertexArray;
internal nint glBindVertexBuffer;
internal nint glBindVertexBuffers;
internal nint glBlendColor;
internal nint glBlendEquation;
internal nint glBlendEquationSeparate;
internal nint glBlendEquationSeparatei;
internal nint glBlendEquationi;
internal nint glBlendFunc;
internal nint glBlendFuncSeparate;
internal nint glBlendFuncSeparatei;
internal nint glBlendFunci;
internal nint glBlitFramebuffer;
internal nint glBlitNamedFramebuffer;
internal nint glBufferData;
internal nint glBufferStorage;
internal nint glBufferSubData;
internal nint glCheckFramebufferStatus;
internal nint glCheckNamedFramebufferStatus;
internal nint glClampColor;
internal nint glClear;
internal nint glClearBufferData;
internal nint glClearBufferSubData;
internal nint glClearBufferfi;
internal nint glClearBufferfv;
internal nint glClearBufferiv;
internal nint glClearBufferuiv;
internal nint glClearColor;
internal nint glClearDepth;
internal nint glClearDepthf;
internal nint glClearNamedBufferData;
internal nint glClearNamedBufferSubData;
internal nint glClearNamedFramebufferfi;
internal nint glClearNamedFramebufferfv;
internal nint glClearNamedFramebufferiv;
internal nint glClearNamedFramebufferuiv;
internal nint glClearStencil;
internal nint glClearTexImage;
internal nint glClearTexSubImage;
internal nint glClientWaitSync;
internal nint glClipControl;
internal nint glColorMask;
internal nint glColorMaski;
internal nint glCompileShader;
internal nint glCompressedTexImage1D;
internal nint glCompressedTexImage2D;
internal nint glCompressedTexImage3D;
internal nint glCompressedTexSubImage1D;
internal nint glCompressedTexSubImage2D;
internal nint glCompressedTexSubImage3D;
internal nint glCompressedTextureSubImage1D;
internal nint glCompressedTextureSubImage2D;
internal nint glCompressedTextureSubImage3D;
internal nint glCopyBufferSubData;
internal nint glCopyImageSubData;
internal nint glCopyNamedBufferSubData;
internal nint glCopyTexImage1D;
internal nint glCopyTexImage2D;
internal nint glCopyTexSubImage1D;
internal nint glCopyTexSubImage2D;
internal nint glCopyTexSubImage3D;
internal nint glCopyTextureSubImage1D;
internal nint glCopyTextureSubImage2D;
internal nint glCopyTextureSubImage3D;
internal nint glCreateBuffers;
internal nint glCreateFramebuffers;
internal nint glCreateProgram;
internal nint glCreateProgramPipelines;
internal nint glCreateQueries;
internal nint glCreateRenderbuffers;
internal nint glCreateSamplers;
internal nint glCreateShader;
internal nint glCreateShaderProgramv;
internal nint glCreateTextures;
internal nint glCreateTransformFeedbacks;
internal nint glCreateVertexArrays;
internal nint glCullFace;
internal nint glDebugMessageCallback;
internal nint glDebugMessageControl;
internal nint glDebugMessageInsert;
internal nint glDeleteBuffers;
internal nint glDeleteFramebuffers;
internal nint glDeleteProgram;
internal nint glDeleteProgramPipelines;
internal nint glDeleteQueries;
internal nint glDeleteRenderbuffers;
internal nint glDeleteSamplers;
internal nint glDeleteShader;
internal nint glDeleteSync;
internal nint glDeleteTextures;
internal nint glDeleteTransformFeedbacks;
internal nint glDeleteVertexArrays;
internal nint glDepthFunc;
internal nint glDepthMask;
internal nint glDepthRange;
internal nint glDepthRangeArrayv;
internal nint glDepthRangeIndexed;
internal nint glDepthRangef;
internal nint glDetachShader;
internal nint glDisable;
internal nint glDisableVertexArrayAttrib;
internal nint glDisableVertexAttribArray;
internal nint glDisablei;
internal nint glDispatchCompute;
internal nint glDispatchComputeIndirect;
internal nint glDrawArrays;
internal nint glDrawArraysIndirect;
internal nint glDrawArraysInstanced;
internal nint glDrawArraysInstancedBaseInstance;
internal nint glDrawBuffer;
internal nint glDrawBuffers;
internal nint glDrawElements;
internal nint glDrawElementsBaseVertex;
internal nint glDrawElementsIndirect;
internal nint glDrawElementsInstanced;
internal nint glDrawElementsInstancedBaseInstance;
internal nint glDrawElementsInstancedBaseVertex;
internal nint glDrawElementsInstancedBaseVertexBaseInstance;
internal nint glDrawRangeElements;
internal nint glDrawRangeElementsBaseVertex;
internal nint glDrawTransformFeedback;
internal nint glDrawTransformFeedbackInstanced;
internal nint glDrawTransformFeedbackStream;
internal nint glDrawTransformFeedbackStreamInstanced;
internal nint glEnable;
internal nint glEnableVertexArrayAttrib;
internal nint glEnableVertexAttribArray;
internal nint glEnablei;
internal nint glEndConditionalRender;
internal nint glEndQuery;
internal nint glEndQueryIndexed;
internal nint glEndTransformFeedback;
internal nint glFenceSync;
internal nint glFinish;
internal nint glFlush;
internal nint glFlushMappedBufferRange;
internal nint glFlushMappedNamedBufferRange;
internal nint glFramebufferParameteri;
internal nint glFramebufferRenderbuffer;
internal nint glFramebufferTexture;
internal nint glFramebufferTexture1D;
internal nint glFramebufferTexture2D;
internal nint glFramebufferTexture3D;
internal nint glFramebufferTextureLayer;
internal nint glFrontFace;
internal nint glGenBuffers;
internal nint glGenFramebuffers;
internal nint glGenProgramPipelines;
internal nint glGenQueries;
internal nint glGenRenderbuffers;
internal nint glGenSamplers;
internal nint glGenTextures;
internal nint glGenTransformFeedbacks;
internal nint glGenVertexArrays;
internal nint glGenerateMipmap;
internal nint glGenerateTextureMipmap;
internal nint glGetActiveAtomicCounterBufferiv;
internal nint glGetActiveAttrib;
internal nint glGetActiveSubroutineName;
internal nint glGetActiveSubroutineUniformName;
internal nint glGetActiveSubroutineUniformiv;
internal nint glGetActiveUniform;
internal nint glGetActiveUniformBlockName;
internal nint glGetActiveUniformBlockiv;
internal nint glGetActiveUniformName;
internal nint glGetActiveUniformsiv;
internal nint glGetAttachedShaders;
internal nint glGetAttribLocation;
internal nint glGetBooleani_v;
internal nint glGetBooleanv;
internal nint glGetBufferParameteri64v;
internal nint glGetBufferParameteriv;
internal nint glGetBufferPointerv;
internal nint glGetBufferSubData;
internal nint glGetCompressedTexImage;
internal nint glGetCompressedTextureImage;
internal nint glGetCompressedTextureSubImage;
internal nint glGetDebugMessageLog;
internal nint glGetDoublei_v;
internal nint glGetDoublev;
internal nint glGetError;
internal nint glGetFloati_v;
internal nint glGetFloatv;
internal nint glGetFragDataIndex;
internal nint glGetFragDataLocation;
internal nint glGetFramebufferAttachmentParameteriv;
internal nint glGetFramebufferParameteriv;
internal nint glGetGraphicsResetStatus;
internal nint glGetInteger64i_v;
internal nint glGetInteger64v;
internal nint glGetIntegeri_v;
internal nint glGetIntegerv;
internal nint glGetInternalformati64v;
internal nint glGetInternalformativ;
internal nint glGetMultisamplefv;
internal nint glGetNamedBufferParameteri64v;
internal nint glGetNamedBufferParameteriv;
internal nint glGetNamedBufferPointerv;
internal nint glGetNamedBufferSubData;
internal nint glGetNamedFramebufferAttachmentParameteriv;
internal nint glGetNamedFramebufferParameteriv;
internal nint glGetNamedRenderbufferParameteriv;
internal nint glGetObjectLabel;
internal nint glGetObjectPtrLabel;
internal nint glGetPointerv;
internal nint glGetProgramBinary;
internal nint glGetProgramInfoLog;
internal nint glGetProgramInterfaceiv;
internal nint glGetProgramPipelineInfoLog;
internal nint glGetProgramPipelineiv;
internal nint glGetProgramResourceIndex;
internal nint glGetProgramResourceLocation;
internal nint glGetProgramResourceLocationIndex;
internal nint glGetProgramResourceName;
internal nint glGetProgramResourceiv;
internal nint glGetProgramStageiv;
internal nint glGetProgramiv;
internal nint glGetQueryBufferObjecti64v;
internal nint glGetQueryBufferObjectiv;
internal nint glGetQueryBufferObjectui64v;
internal nint glGetQueryBufferObjectuiv;
internal nint glGetQueryIndexediv;
internal nint glGetQueryObjecti64v;
internal nint glGetQueryObjectiv;
internal nint glGetQueryObjectui64v;
internal nint glGetQueryObjectuiv;
internal nint glGetQueryiv;
internal nint glGetRenderbufferParameteriv;
internal nint glGetSamplerParameterIiv;
internal nint glGetSamplerParameterIuiv;
internal nint glGetSamplerParameterfv;
internal nint glGetSamplerParameteriv;
internal nint glGetShaderInfoLog;
internal nint glGetShaderPrecisionFormat;
internal nint glGetShaderSource;
internal nint glGetShaderiv;
internal nint glGetString;
internal nint glGetStringi;
internal nint glGetSubroutineIndex;
internal nint glGetSubroutineUniformLocation;
internal nint glGetSynciv;
internal nint glGetTexImage;
internal nint glGetTexLevelParameterfv;
internal nint glGetTexLevelParameteriv;
internal nint glGetTexParameterIiv;
internal nint glGetTexParameterIuiv;
internal nint glGetTexParameterfv;
internal nint glGetTexParameteriv;
internal nint glGetTextureImage;
internal nint glGetTextureLevelParameterfv;
internal nint glGetTextureLevelParameteriv;
internal nint glGetTextureParameterIiv;
internal nint glGetTextureParameterIuiv;
internal nint glGetTextureParameterfv;
internal nint glGetTextureParameteriv;
internal nint glGetTextureSubImage;
internal nint glGetTransformFeedbackVarying;
internal nint glGetTransformFeedbacki64_v;
internal nint glGetTransformFeedbacki_v;
internal nint glGetTransformFeedbackiv;
internal nint glGetUniformBlockIndex;
internal nint glGetUniformIndices;
internal nint glGetUniformLocation;
internal nint glGetUniformSubroutineuiv;
internal nint glGetUniformdv;
internal nint glGetUniformfv;
internal nint glGetUniformiv;
internal nint glGetUniformuiv;
internal nint glGetVertexArrayIndexed64iv;
internal nint glGetVertexArrayIndexediv;
internal nint glGetVertexArrayiv;
internal nint glGetVertexAttribIiv;
internal nint glGetVertexAttribIuiv;
internal nint glGetVertexAttribLdv;
internal nint glGetVertexAttribPointerv;
internal nint glGetVertexAttribdv;
internal nint glGetVertexAttribfv;
internal nint glGetVertexAttribiv;
internal nint glGetnCompressedTexImage;
internal nint glGetnTexImage;
internal nint glGetnUniformdv;
internal nint glGetnUniformfv;
internal nint glGetnUniformiv;
internal nint glGetnUniformuiv;
internal nint glHint;
internal nint glInvalidateBufferData;
internal nint glInvalidateBufferSubData;
internal nint glInvalidateFramebuffer;
internal nint glInvalidateNamedFramebufferData;
internal nint glInvalidateNamedFramebufferSubData;
internal nint glInvalidateSubFramebuffer;
internal nint glInvalidateTexImage;
internal nint glInvalidateTexSubImage;
internal nint glIsBuffer;
internal nint glIsEnabled;
internal nint glIsEnabledi;
internal nint glIsFramebuffer;
internal nint glIsProgram;
internal nint glIsProgramPipeline;
internal nint glIsQuery;
internal nint glIsRenderbuffer;
internal nint glIsSampler;
internal nint glIsShader;
internal nint glIsSync;
internal nint glIsTexture;
internal nint glIsTransformFeedback;
internal nint glIsVertexArray;
internal nint glLineWidth;
internal nint glLinkProgram;
internal nint glLogicOp;
internal nint glMapBuffer;
internal nint glMapBufferRange;
internal nint glMapNamedBuffer;
internal nint glMapNamedBufferRange;
internal nint glMemoryBarrier;
internal nint glMemoryBarrierByRegion;
internal nint glMinSampleShading;
internal nint glMultiDrawArrays;
internal nint glMultiDrawArraysIndirect;
internal nint glMultiDrawArraysIndirectCount;
internal nint glMultiDrawElements;
internal nint glMultiDrawElementsBaseVertex;
internal nint glMultiDrawElementsIndirect;
internal nint glMultiDrawElementsIndirectCount;
internal nint glNamedBufferData;
internal nint glNamedBufferStorage;
internal nint glNamedBufferSubData;
internal nint glNamedFramebufferDrawBuffer;
internal nint glNamedFramebufferDrawBuffers;
internal nint glNamedFramebufferParameteri;
internal nint glNamedFramebufferReadBuffer;
internal nint glNamedFramebufferRenderbuffer;
internal nint glNamedFramebufferTexture;
internal nint glNamedFramebufferTextureLayer;
internal nint glNamedRenderbufferStorage;
internal nint glNamedRenderbufferStorageMultisample;
internal nint glObjectLabel;
internal nint glObjectPtrLabel;
internal nint glPatchParameterfv;
internal nint glPatchParameteri;
internal nint glPauseTransformFeedback;
internal nint glPixelStoref;
internal nint glPixelStorei;
internal nint glPointParameterf;
internal nint glPointParameterfv;
internal nint glPointParameteri;
internal nint glPointParameteriv;
internal nint glPointSize;
internal nint glPolygonMode;
internal nint glPolygonOffset;
internal nint glPolygonOffsetClamp;
internal nint glPopDebugGroup;
internal nint glPrimitiveRestartIndex;
internal nint glProgramBinary;
internal nint glProgramParameteri;
internal nint glProgramUniform1d;
internal nint glProgramUniform1dv;
internal nint glProgramUniform1f;
internal nint glProgramUniform1fv;
internal nint glProgramUniform1i;
internal nint glProgramUniform1iv;
internal nint glProgramUniform1ui;
internal nint glProgramUniform1uiv;
internal nint glProgramUniform2d;
internal nint glProgramUniform2dv;
internal nint glProgramUniform2f;
internal nint glProgramUniform2fv;
internal nint glProgramUniform2i;
internal nint glProgramUniform2iv;
internal nint glProgramUniform2ui;
internal nint glProgramUniform2uiv;
internal nint glProgramUniform3d;
internal nint glProgramUniform3dv;
internal nint glProgramUniform3f;
internal nint glProgramUniform3fv;
internal nint glProgramUniform3i;
internal nint glProgramUniform3iv;
internal nint glProgramUniform3ui;
internal nint glProgramUniform3uiv;
internal nint glProgramUniform4d;
internal nint glProgramUniform4dv;
internal nint glProgramUniform4f;
internal nint glProgramUniform4fv;
internal nint glProgramUniform4i;
internal nint glProgramUniform4iv;
internal nint glProgramUniform4ui;
internal nint glProgramUniform4uiv;
internal nint glProgramUniformMatrix2dv;
internal nint glProgramUniformMatrix2fv;
internal nint glProgramUniformMatrix2x3dv;
internal nint glProgramUniformMatrix2x3fv;
internal nint glProgramUniformMatrix2x4dv;
internal nint glProgramUniformMatrix2x4fv;
internal nint glProgramUniformMatrix3dv;
internal nint glProgramUniformMatrix3fv;
internal nint glProgramUniformMatrix3x2dv;
internal nint glProgramUniformMatrix3x2fv;
internal nint glProgramUniformMatrix3x4dv;
internal nint glProgramUniformMatrix3x4fv;
internal nint glProgramUniformMatrix4dv;
internal nint glProgramUniformMatrix4fv;
internal nint glProgramUniformMatrix4x2dv;
internal nint glProgramUniformMatrix4x2fv;
internal nint glProgramUniformMatrix4x3dv;
internal nint glProgramUniformMatrix4x3fv;
internal nint glProvokingVertex;
internal nint glPushDebugGroup;
internal nint glQueryCounter;
internal nint glReadBuffer;
internal nint glReadPixels;
internal nint glReadnPixels;
internal nint glReleaseShaderCompiler;
internal nint glRenderbufferStorage;
internal nint glRenderbufferStorageMultisample;
internal nint glResumeTransformFeedback;
internal nint glSampleCoverage;
internal nint glSampleMaski;
internal nint glSamplerParameterIiv;
internal nint glSamplerParameterIuiv;
internal nint glSamplerParameterf;
internal nint glSamplerParameterfv;
internal nint glSamplerParameteri;
internal nint glSamplerParameteriv;
internal nint glScissor;
internal nint glScissorArrayv;
internal nint glScissorIndexed;
internal nint glScissorIndexedv;
internal nint glShaderBinary;
internal nint glShaderSource;
internal nint glShaderStorageBlockBinding;
internal nint glSpecializeShader;
internal nint glStencilFunc;
internal nint glStencilFuncSeparate;
internal nint glStencilMask;
internal nint glStencilMaskSeparate;
internal nint glStencilOp;
internal nint glStencilOpSeparate;
internal nint glTexBuffer;
internal nint glTexBufferRange;
internal nint glTexImage1D;
internal nint glTexImage2D;
internal nint glTexImage2DMultisample;
internal nint glTexImage3D;
internal nint glTexImage3DMultisample;
internal nint glTexParameterIiv;
internal nint glTexParameterIuiv;
internal nint glTexParameterf;
internal nint glTexParameterfv;
internal nint glTexParameteri;
internal nint glTexParameteriv;
internal nint glTexStorage1D;
internal nint glTexStorage2D;
internal nint glTexStorage2DMultisample;
internal nint glTexStorage3D;
internal nint glTexStorage3DMultisample;
internal nint glTexSubImage1D;
internal nint glTexSubImage2D;
internal nint glTexSubImage3D;
internal nint glTextureBarrier;
internal nint glTextureBuffer;
internal nint glTextureBufferRange;
internal nint glTextureParameterIiv;
internal nint glTextureParameterIuiv;
internal nint glTextureParameterf;
internal nint glTextureParameterfv;
internal nint glTextureParameteri;
internal nint glTextureParameteriv;
internal nint glTextureStorage1D;
internal nint glTextureStorage2D;
internal nint glTextureStorage2DMultisample;
internal nint glTextureStorage3D;
internal nint glTextureStorage3DMultisample;
internal nint glTextureSubImage1D;
internal nint glTextureSubImage2D;
internal nint glTextureSubImage3D;
internal nint glTextureView;
internal nint glTransformFeedbackBufferBase;
internal nint glTransformFeedbackBufferRange;
internal nint glTransformFeedbackVaryings;
internal nint glUniform1d;
internal nint glUniform1dv;
internal nint glUniform1f;
internal nint glUniform1fv;
internal nint glUniform1i;
internal nint glUniform1iv;
internal nint glUniform1ui;
internal nint glUniform1uiv;
internal nint glUniform2d;
internal nint glUniform2dv;
internal nint glUniform2f;
internal nint glUniform2fv;
internal nint glUniform2i;
internal nint glUniform2iv;
internal nint glUniform2ui;
internal nint glUniform2uiv;
internal nint glUniform3d;
internal nint glUniform3dv;
internal nint glUniform3f;
internal nint glUniform3fv;
internal nint glUniform3i;
internal nint glUniform3iv;
internal nint glUniform3ui;
internal nint glUniform3uiv;
internal nint glUniform4d;
internal nint glUniform4dv;
internal nint glUniform4f;
internal nint glUniform4fv;
internal nint glUniform4i;
internal nint glUniform4iv;
internal nint glUniform4ui;
internal nint glUniform4uiv;
internal nint glUniformBlockBinding;
internal nint glUniformMatrix2dv;
internal nint glUniformMatrix2fv;
internal nint glUniformMatrix2x3dv;
internal nint glUniformMatrix2x3fv;
internal nint glUniformMatrix2x4dv;
internal nint glUniformMatrix2x4fv;
internal nint glUniformMatrix3dv;
internal nint glUniformMatrix3fv;
internal nint glUniformMatrix3x2dv;
internal nint glUniformMatrix3x2fv;
internal nint glUniformMatrix3x4dv;
internal nint glUniformMatrix3x4fv;
internal nint glUniformMatrix4dv;
internal nint glUniformMatrix4fv;
internal nint glUniformMatrix4x2dv;
internal nint glUniformMatrix4x2fv;
internal nint glUniformMatrix4x3dv;
internal nint glUniformMatrix4x3fv;
internal nint glUniformSubroutinesuiv;
internal nint glUnmapBuffer;
internal nint glUnmapNamedBuffer;
internal nint glUseProgram;
internal nint glUseProgramStages;
internal nint glValidateProgram;
internal nint glValidateProgramPipeline;
internal nint glVertexArrayAttribBinding;
internal nint glVertexArrayAttribFormat;
internal nint glVertexArrayAttribIFormat;
internal nint glVertexArrayAttribLFormat;
internal nint glVertexArrayBindingDivisor;
internal nint glVertexArrayElementBuffer;
internal nint glVertexArrayVertexBuffer;
internal nint glVertexArrayVertexBuffers;
internal nint glVertexAttrib1d;
internal nint glVertexAttrib1dv;
internal nint glVertexAttrib1f;
internal nint glVertexAttrib1fv;
internal nint glVertexAttrib1s;
internal nint glVertexAttrib1sv;
internal nint glVertexAttrib2d;
internal nint glVertexAttrib2dv;
internal nint glVertexAttrib2f;
internal nint glVertexAttrib2fv;
internal nint glVertexAttrib2s;
internal nint glVertexAttrib2sv;
internal nint glVertexAttrib3d;
internal nint glVertexAttrib3dv;
internal nint glVertexAttrib3f;
internal nint glVertexAttrib3fv;
internal nint glVertexAttrib3s;
internal nint glVertexAttrib3sv;
internal nint glVertexAttrib4Nbv;
internal nint glVertexAttrib4Niv;
internal nint glVertexAttrib4Nsv;
internal nint glVertexAttrib4Nub;
internal nint glVertexAttrib4Nubv;
internal nint glVertexAttrib4Nuiv;
internal nint glVertexAttrib4Nusv;
internal nint glVertexAttrib4bv;
internal nint glVertexAttrib4d;
internal nint glVertexAttrib4dv;
internal nint glVertexAttrib4f;
internal nint glVertexAttrib4fv;
internal nint glVertexAttrib4iv;
internal nint glVertexAttrib4s;
internal nint glVertexAttrib4sv;
internal nint glVertexAttrib4ubv;
internal nint glVertexAttrib4uiv;
internal nint glVertexAttrib4usv;
internal nint glVertexAttribBinding;
internal nint glVertexAttribDivisor;
internal nint glVertexAttribFormat;
internal nint glVertexAttribI1i;
internal nint glVertexAttribI1iv;
internal nint glVertexAttribI1ui;
internal nint glVertexAttribI1uiv;
internal nint glVertexAttribI2i;
internal nint glVertexAttribI2iv;
internal nint glVertexAttribI2ui;
internal nint glVertexAttribI2uiv;
internal nint glVertexAttribI3i;
internal nint glVertexAttribI3iv;
internal nint glVertexAttribI3ui;
internal nint glVertexAttribI3uiv;
internal nint glVertexAttribI4bv;
internal nint glVertexAttribI4i;
internal nint glVertexAttribI4iv;
internal nint glVertexAttribI4sv;
internal nint glVertexAttribI4ubv;
internal nint glVertexAttribI4ui;
internal nint glVertexAttribI4uiv;
internal nint glVertexAttribI4usv;
internal nint glVertexAttribIFormat;
internal nint glVertexAttribIPointer;
internal nint glVertexAttribL1d;
internal nint glVertexAttribL1dv;
internal nint glVertexAttribL2d;
internal nint glVertexAttribL2dv;
internal nint glVertexAttribL3d;
internal nint glVertexAttribL3dv;
internal nint glVertexAttribL4d;
internal nint glVertexAttribL4dv;
internal nint glVertexAttribLFormat;
internal nint glVertexAttribLPointer;
internal nint glVertexAttribP1ui;
internal nint glVertexAttribP1uiv;
internal nint glVertexAttribP2ui;
internal nint glVertexAttribP2uiv;
internal nint glVertexAttribP3ui;
internal nint glVertexAttribP3uiv;
internal nint glVertexAttribP4ui;
internal nint glVertexAttribP4uiv;
internal nint glVertexAttribPointer;
internal nint glVertexBindingDivisor;
internal nint glViewport;
internal nint glViewportArrayv;
internal nint glViewportIndexedf;
internal nint glViewportIndexedfv;
internal nint glWaitSync;
}
}
@@ -1,678 +0,0 @@
// -----------------------------------------------------------------------------
// file="glContextShadow"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StgSharp.Graphics.OpenGL
{
internal struct glContextShadow
{
internal IntPtr glActiveShaderProgram;
internal IntPtr glActiveTexture;
internal IntPtr glAttachShader;
internal IntPtr glBeginConditionalRender;
internal IntPtr glBeginQuery;
internal IntPtr glBeginQueryIndexed;
internal IntPtr glBeginTransformFeedback;
internal IntPtr glBindAttribLocation;
internal IntPtr glBindBuffer;
internal IntPtr glBindBufferBase;
internal IntPtr glBindBufferRange;
internal IntPtr glBindBuffersBase;
internal IntPtr glBindBuffersRange;
internal IntPtr glBindFragDataLocation;
internal IntPtr glBindFragDataLocationIndexed;
internal IntPtr glBindFramebuffer;
internal IntPtr glBindImageTexture;
internal IntPtr glBindImageTextures;
internal IntPtr glBindProgramPipeline;
internal IntPtr glBindRenderbuffer;
internal IntPtr glBindSampler;
internal IntPtr glBindSamplers;
internal IntPtr glBindTexture;
internal IntPtr glBindTextures;
internal IntPtr glBindTextureUnit;
internal IntPtr glBindTransformFeedback;
internal IntPtr glBindVertexArray;
internal IntPtr glBindVertexBuffer;
internal IntPtr glBindVertexBuffers;
internal IntPtr glBlendColor;
internal IntPtr glBlendEquation;
internal IntPtr glBlendEquationi;
internal IntPtr glBlendEquationSeparate;
internal IntPtr glBlendEquationSeparatei;
internal IntPtr glBlendFunc;
internal IntPtr glBlendFunci;
internal IntPtr glBlendFuncSeparate;
internal IntPtr glBlendFuncSeparatei;
internal IntPtr glBlitFramebuffer;
internal IntPtr glBlitNamedFramebuffer;
internal IntPtr glBufferData;
internal IntPtr glBufferStorage;
internal IntPtr glBufferSubData;
internal IntPtr glCheckFramebufferStatus;
internal IntPtr glCheckNamedFramebufferStatus;
internal IntPtr glClampColor;
internal IntPtr glClear;
internal IntPtr glClearBufferData;
internal IntPtr glClearBufferfi;
internal IntPtr glClearBufferfv;
internal IntPtr glClearBufferiv;
internal IntPtr glClearBufferSubData;
internal IntPtr glClearBufferuiv;
internal IntPtr glClearColor;
internal IntPtr glClearDepth;
internal IntPtr glClearDepthf;
internal IntPtr glClearNamedBufferData;
internal IntPtr glClearNamedBufferSubData;
internal IntPtr glClearNamedFramebufferfi;
internal IntPtr glClearNamedFramebufferfv;
internal IntPtr glClearNamedFramebufferiv;
internal IntPtr glClearNamedFramebufferuiv;
internal IntPtr glClearStencil;
internal IntPtr glClearTexImage;
internal IntPtr glClearTexSubImage;
internal IntPtr glClientWaitSync;
internal IntPtr glClipControl;
internal IntPtr glColorMask;
internal IntPtr glColorMaski;
internal IntPtr glCompileShader;
internal IntPtr glCompressedTexImage1D;
internal IntPtr glCompressedTexImage2D;
internal IntPtr glCompressedTexImage3D;
internal IntPtr glCompressedTexSubImage1D;
internal IntPtr glCompressedTexSubImage2D;
internal IntPtr glCompressedTexSubImage3D;
internal IntPtr glCompressedTextureSubImage1D;
internal IntPtr glCompressedTextureSubImage2D;
internal IntPtr glCompressedTextureSubImage3D;
internal IntPtr glCopyBufferSubData;
internal IntPtr glCopyImageSubData;
internal IntPtr glCopyNamedBufferSubData;
internal IntPtr glCopyTexImage1D;
internal IntPtr glCopyTexImage2D;
internal IntPtr glCopyTexSubImage1D;
internal IntPtr glCopyTexSubImage2D;
internal IntPtr glCopyTexSubImage3D;
internal IntPtr glCopyTextureSubImage1D;
internal IntPtr glCopyTextureSubImage2D;
internal IntPtr glCopyTextureSubImage3D;
internal IntPtr glCreateBuffers;
internal IntPtr glCreateFramebuffers;
internal IntPtr glCreateProgram;
internal IntPtr glCreateProgramPipelines;
internal IntPtr glCreateQueries;
internal IntPtr glCreateRenderbuffers;
internal IntPtr glCreateSamplers;
internal IntPtr glCreateShader;
internal IntPtr glCreateShaderProgramv;
internal IntPtr glCreateTextures;
internal IntPtr glCreateTransformFeedbacks;
internal IntPtr glCreateVertexArrays;
internal IntPtr glCullFace;
internal IntPtr glDebugMessageCallback;
internal IntPtr glDebugMessageControl;
internal IntPtr glDebugMessageInsert;
internal IntPtr glDeleteBuffers;
internal IntPtr glDeleteFramebuffers;
internal IntPtr glDeleteProgram;
internal IntPtr glDeleteProgramPipelines;
internal IntPtr glDeleteQueries;
internal IntPtr glDeleteRenderbuffers;
internal IntPtr glDeleteSamplers;
internal IntPtr glDeleteShader;
internal IntPtr glDeleteSync;
internal IntPtr glDeleteTextures;
internal IntPtr glDeleteTransformFeedbacks;
internal IntPtr glDeleteVertexArrays;
internal IntPtr glDepthFunc;
internal IntPtr glDepthMask;
internal IntPtr glDepthRange;
internal IntPtr glDepthRangeArrayv;
internal IntPtr glDepthRangef;
internal IntPtr glDepthRangeIndexed;
internal IntPtr glDetachShader;
internal IntPtr glDisable;
internal IntPtr glDisablei;
internal IntPtr glDisableVertexArrayAttrib;
internal IntPtr glDisableVertexAttribArray;
internal IntPtr glDispatchCompute;
internal IntPtr glDispatchComputeIndirect;
internal IntPtr glDrawArrays;
internal IntPtr glDrawArraysIndirect;
internal IntPtr glDrawArraysInstanced;
internal IntPtr glDrawArraysInstancedBaseInstance;
internal IntPtr glDrawBuffer;
internal IntPtr glDrawBuffers;
internal IntPtr glDrawElements;
internal IntPtr glDrawElementsBaseVertex;
internal IntPtr glDrawElementsIndirect;
internal IntPtr glDrawElementsInstanced;
internal IntPtr glDrawElementsInstancedBaseInstance;
internal IntPtr glDrawElementsInstancedBaseVertex;
internal IntPtr glDrawElementsInstancedBaseVertexBaseInstance;
internal IntPtr glDrawRangeElements;
internal IntPtr glDrawRangeElementsBaseVertex;
internal IntPtr glDrawTransformFeedback;
internal IntPtr glDrawTransformFeedbackInstanced;
internal IntPtr glDrawTransformFeedbackStream;
internal IntPtr glDrawTransformFeedbackStreamInstanced;
internal IntPtr glEnable;
internal IntPtr glEnablei;
internal IntPtr glEnableVertexArrayAttrib;
internal IntPtr glEnableVertexAttribArray;
internal IntPtr glEndConditionalRender;
internal IntPtr glEndQuery;
internal IntPtr glEndQueryIndexed;
internal IntPtr glEndTransformFeedback;
internal IntPtr glFenceSync;
internal IntPtr glFinish;
internal IntPtr glFlush;
internal IntPtr glFlushMappedBufferRange;
internal IntPtr glFlushMappedNamedBufferRange;
internal IntPtr glFramebufferParameteri;
internal IntPtr glFramebufferRenderbuffer;
internal IntPtr glFramebufferTexture;
internal IntPtr glFramebufferTexture1D;
internal IntPtr glFramebufferTexture2D;
internal IntPtr glFramebufferTexture3D;
internal IntPtr glFramebufferTextureLayer;
internal IntPtr glFrontFace;
internal IntPtr glGenBuffers;
internal IntPtr glGenerateMipmap;
internal IntPtr glGenerateTextureMipmap;
internal IntPtr glGenFramebuffers;
internal IntPtr glGenProgramPipelines;
internal IntPtr glGenQueries;
internal IntPtr glGenRenderbuffers;
internal IntPtr glGenSamplers;
internal IntPtr glGenTextures;
internal IntPtr glGenTransformFeedbacks;
internal IntPtr glGenVertexArrays;
internal IntPtr glGetActiveAtomicCounterBufferiv;
internal IntPtr glGetActiveAttrib;
internal IntPtr glGetActiveSubroutineName;
internal IntPtr glGetActiveSubroutineUniformiv;
internal IntPtr glGetActiveSubroutineUniformName;
internal IntPtr glGetActiveUniform;
internal IntPtr glGetActiveUniformBlockiv;
internal IntPtr glGetActiveUniformBlockName;
internal IntPtr glGetActiveUniformName;
internal IntPtr glGetActiveUniformsiv;
internal IntPtr glGetAttachedShaders;
internal IntPtr glGetAttribLocation;
internal IntPtr glGetBooleani_v;
internal IntPtr glGetBooleanv;
internal IntPtr glGetBufferParameteri64v;
internal IntPtr glGetBufferParameteriv;
internal IntPtr glGetBufferPointerv;
internal IntPtr glGetBufferSubData;
internal IntPtr glGetCompressedTexImage;
internal IntPtr glGetCompressedTextureImage;
internal IntPtr glGetCompressedTextureSubImage;
internal IntPtr glGetDebugMessageLog;
internal IntPtr glGetDoublei_v;
internal IntPtr glGetDoublev;
internal IntPtr glGetError;
internal IntPtr glGetFloati_v;
internal IntPtr glGetFloatv;
internal IntPtr glGetFragDataIndex;
internal IntPtr glGetFragDataLocation;
internal IntPtr glGetFramebufferAttachmentParameteriv;
internal IntPtr glGetFramebufferParameteriv;
internal IntPtr glGetGraphicsResetStatus;
internal IntPtr glGetInteger64i_v;
internal IntPtr glGetInteger64v;
internal IntPtr glGetIntegeri_v;
internal IntPtr glGetIntegerv;
internal IntPtr glGetInternalformati64v;
internal IntPtr glGetInternalformativ;
internal IntPtr glGetMultisamplefv;
internal IntPtr glGetNamedBufferParameteri64v;
internal IntPtr glGetNamedBufferParameteriv;
internal IntPtr glGetNamedBufferPointerv;
internal IntPtr glGetNamedBufferSubData;
internal IntPtr glGetNamedFramebufferAttachmentParameteriv;
internal IntPtr glGetNamedFramebufferParameteriv;
internal IntPtr glGetNamedRenderbufferParameteriv;
internal IntPtr glGetnCompressedTexImage;
internal IntPtr glGetnTexImage;
internal IntPtr glGetnUniformdv;
internal IntPtr glGetnUniformfv;
internal IntPtr glGetnUniformiv;
internal IntPtr glGetnUniformuiv;
internal IntPtr glGetObjectLabel;
internal IntPtr glGetObjectPtrLabel;
internal IntPtr glGetPointerv;
internal IntPtr glGetProgramBinary;
internal IntPtr glGetProgramInfoLog;
internal IntPtr glGetProgramInterfaceiv;
internal IntPtr glGetProgramiv;
internal IntPtr glGetProgramPipelineInfoLog;
internal IntPtr glGetProgramPipelineiv;
internal IntPtr glGetProgramResourceIndex;
internal IntPtr glGetProgramResourceiv;
internal IntPtr glGetProgramResourceLocation;
internal IntPtr glGetProgramResourceLocationIndex;
internal IntPtr glGetProgramResourceName;
internal IntPtr glGetProgramStageiv;
internal IntPtr glGetQueryBufferObjecti64v;
internal IntPtr glGetQueryBufferObjectiv;
internal IntPtr glGetQueryBufferObjectui64v;
internal IntPtr glGetQueryBufferObjectuiv;
internal IntPtr glGetQueryIndexediv;
internal IntPtr glGetQueryiv;
internal IntPtr glGetQueryObjecti64v;
internal IntPtr glGetQueryObjectiv;
internal IntPtr glGetQueryObjectui64v;
internal IntPtr glGetQueryObjectuiv;
internal IntPtr glGetRenderbufferParameteriv;
internal IntPtr glGetSamplerParameterfv;
internal IntPtr glGetSamplerParameterIiv;
internal IntPtr glGetSamplerParameterIuiv;
internal IntPtr glGetSamplerParameteriv;
internal IntPtr glGetShaderInfoLog;
internal IntPtr glGetShaderiv;
internal IntPtr glGetShaderPrecisionFormat;
internal IntPtr glGetShaderSource;
internal IntPtr glGetString;
internal IntPtr glGetStringi;
internal IntPtr glGetSubroutineIndex;
internal IntPtr glGetSubroutineUniformLocation;
internal IntPtr glGetSynciv;
internal IntPtr glGetTexImage;
internal IntPtr glGetTexLevelParameterfv;
internal IntPtr glGetTexLevelParameteriv;
internal IntPtr glGetTexParameterfv;
internal IntPtr glGetTexParameterIiv;
internal IntPtr glGetTexParameterIuiv;
internal IntPtr glGetTexParameteriv;
internal IntPtr glGetTextureImage;
internal IntPtr glGetTextureLevelParameterfv;
internal IntPtr glGetTextureLevelParameteriv;
internal IntPtr glGetTextureParameterfv;
internal IntPtr glGetTextureParameterIiv;
internal IntPtr glGetTextureParameterIuiv;
internal IntPtr glGetTextureParameteriv;
internal IntPtr glGetTextureSubImage;
internal IntPtr glGetTransformFeedbacki_v;
internal IntPtr glGetTransformFeedbacki64_v;
internal IntPtr glGetTransformFeedbackiv;
internal IntPtr glGetTransformFeedbackVarying;
internal IntPtr glGetUniformBlockIndex;
internal IntPtr glGetUniformdv;
internal IntPtr glGetUniformfv;
internal IntPtr glGetUniformIndices;
internal IntPtr glGetUniformiv;
internal IntPtr glGetUniformLocation;
internal IntPtr glGetUniformSubroutineuiv;
internal IntPtr glGetUniformuiv;
internal IntPtr glGetVertexArrayIndexed64iv;
internal IntPtr glGetVertexArrayIndexediv;
internal IntPtr glGetVertexArrayiv;
internal IntPtr glGetVertexAttribdv;
internal IntPtr glGetVertexAttribfv;
internal IntPtr glGetVertexAttribIiv;
internal IntPtr glGetVertexAttribIuiv;
internal IntPtr glGetVertexAttribiv;
internal IntPtr glGetVertexAttribLdv;
internal IntPtr glGetVertexAttribPointerv;
internal IntPtr glHint;
internal IntPtr glInvalidateBufferData;
internal IntPtr glInvalidateBufferSubData;
internal IntPtr glInvalidateFramebuffer;
internal IntPtr glInvalidateNamedFramebufferData;
internal IntPtr glInvalidateNamedFramebufferSubData;
internal IntPtr glInvalidateSubFramebuffer;
internal IntPtr glInvalidateTexImage;
internal IntPtr glInvalidateTexSubImage;
internal IntPtr glIsBuffer;
internal IntPtr glIsEnabled;
internal IntPtr glIsEnabledi;
internal IntPtr glIsFramebuffer;
internal IntPtr glIsProgram;
internal IntPtr glIsProgramPipeline;
internal IntPtr glIsQuery;
internal IntPtr glIsRenderbuffer;
internal IntPtr glIsSampler;
internal IntPtr glIsShader;
internal IntPtr glIsSync;
internal IntPtr glIsTexture;
internal IntPtr glIsTransformFeedback;
internal IntPtr glIsVertexArray;
internal IntPtr glLineWidth;
internal IntPtr glLinkProgram;
internal IntPtr glLogicOp;
internal IntPtr glMapBuffer;
internal IntPtr glMapBufferRange;
internal IntPtr glMapNamedBuffer;
internal IntPtr glMapNamedBufferRange;
internal IntPtr glMemoryBarrier;
internal IntPtr glMemoryBarrierByRegion;
internal IntPtr glMinSampleShading;
internal IntPtr glMultiDrawArrays;
internal IntPtr glMultiDrawArraysIndirect;
internal IntPtr glMultiDrawArraysIndirectCount;
internal IntPtr glMultiDrawElements;
internal IntPtr glMultiDrawElementsBaseVertex;
internal IntPtr glMultiDrawElementsIndirect;
internal IntPtr glMultiDrawElementsIndirectCount;
internal IntPtr glNamedBufferData;
internal IntPtr glNamedBufferStorage;
internal IntPtr glNamedBufferSubData;
internal IntPtr glNamedFramebufferDrawBuffer;
internal IntPtr glNamedFramebufferDrawBuffers;
internal IntPtr glNamedFramebufferParameteri;
internal IntPtr glNamedFramebufferReadBuffer;
internal IntPtr glNamedFramebufferRenderbuffer;
internal IntPtr glNamedFramebufferTexture;
internal IntPtr glNamedFramebufferTextureLayer;
internal IntPtr glNamedRenderbufferStorage;
internal IntPtr glNamedRenderbufferStorageMultisample;
internal IntPtr glObjectLabel;
internal IntPtr glObjectPtrLabel;
internal IntPtr glPatchParameterfv;
internal IntPtr glPatchParameteri;
internal IntPtr glPauseTransformFeedback;
internal IntPtr glPixelStoref;
internal IntPtr glPixelStorei;
internal IntPtr glPointParameterf;
internal IntPtr glPointParameterfv;
internal IntPtr glPointParameteri;
internal IntPtr glPointParameteriv;
internal IntPtr glPointSize;
internal IntPtr glPolygonMode;
internal IntPtr glPolygonOffset;
internal IntPtr glPolygonOffsetClamp;
internal IntPtr glPopDebugGroup;
internal IntPtr glPrimitiveRestartIndex;
internal IntPtr glProgramBinary;
internal IntPtr glProgramParameteri;
internal IntPtr glProgramUniform1d;
internal IntPtr glProgramUniform1dv;
internal IntPtr glProgramUniform1f;
internal IntPtr glProgramUniform1fv;
internal IntPtr glProgramUniform1i;
internal IntPtr glProgramUniform1iv;
internal IntPtr glProgramUniform1ui;
internal IntPtr glProgramUniform1uiv;
internal IntPtr glProgramUniform2d;
internal IntPtr glProgramUniform2dv;
internal IntPtr glProgramUniform2f;
internal IntPtr glProgramUniform2fv;
internal IntPtr glProgramUniform2i;
internal IntPtr glProgramUniform2iv;
internal IntPtr glProgramUniform2ui;
internal IntPtr glProgramUniform2uiv;
internal IntPtr glProgramUniform3d;
internal IntPtr glProgramUniform3dv;
internal IntPtr glProgramUniform3f;
internal IntPtr glProgramUniform3fv;
internal IntPtr glProgramUniform3i;
internal IntPtr glProgramUniform3iv;
internal IntPtr glProgramUniform3ui;
internal IntPtr glProgramUniform3uiv;
internal IntPtr glProgramUniform4d;
internal IntPtr glProgramUniform4dv;
internal IntPtr glProgramUniform4f;
internal IntPtr glProgramUniform4fv;
internal IntPtr glProgramUniform4i;
internal IntPtr glProgramUniform4iv;
internal IntPtr glProgramUniform4ui;
internal IntPtr glProgramUniform4uiv;
internal IntPtr glProgramUniformMatrix2dv;
internal IntPtr glProgramUniformMatrix2fv;
internal IntPtr glProgramUniformMatrix2x3dv;
internal IntPtr glProgramUniformMatrix2x3fv;
internal IntPtr glProgramUniformMatrix2x4dv;
internal IntPtr glProgramUniformMatrix2x4fv;
internal IntPtr glProgramUniformMatrix3dv;
internal IntPtr glProgramUniformMatrix3fv;
internal IntPtr glProgramUniformMatrix3x2dv;
internal IntPtr glProgramUniformMatrix3x2fv;
internal IntPtr glProgramUniformMatrix3x4dv;
internal IntPtr glProgramUniformMatrix3x4fv;
internal IntPtr glProgramUniformMatrix4dv;
internal IntPtr glProgramUniformMatrix4fv;
internal IntPtr glProgramUniformMatrix4x2dv;
internal IntPtr glProgramUniformMatrix4x2fv;
internal IntPtr glProgramUniformMatrix4x3dv;
internal IntPtr glProgramUniformMatrix4x3fv;
internal IntPtr glProvokingVertex;
internal IntPtr glPushDebugGroup;
internal IntPtr glQueryCounter;
internal IntPtr glReadBuffer;
internal IntPtr glReadnPixels;
internal IntPtr glReadPixels;
internal IntPtr glReleaseShaderCompiler;
internal IntPtr glRenderbufferStorage;
internal IntPtr glRenderbufferStorageMultisample;
internal IntPtr glResumeTransformFeedback;
internal IntPtr glSampleCoverage;
internal IntPtr glSampleMaski;
internal IntPtr glSamplerParameterf;
internal IntPtr glSamplerParameterfv;
internal IntPtr glSamplerParameteri;
internal IntPtr glSamplerParameterIiv;
internal IntPtr glSamplerParameterIuiv;
internal IntPtr glSamplerParameteriv;
internal IntPtr glScissor;
internal IntPtr glScissorArrayv;
internal IntPtr glScissorIndexed;
internal IntPtr glScissorIndexedv;
internal IntPtr glShaderBinary;
internal IntPtr glShaderSource;
internal IntPtr glShaderStorageBlockBinding;
internal IntPtr glSpecializeShader;
internal IntPtr glStencilFunc;
internal IntPtr glStencilFuncSeparate;
internal IntPtr glStencilMask;
internal IntPtr glStencilMaskSeparate;
internal IntPtr glStencilOp;
internal IntPtr glStencilOpSeparate;
internal IntPtr glTexBuffer;
internal IntPtr glTexBufferRange;
internal IntPtr glTexImage1D;
internal IntPtr glTexImage2D;
internal IntPtr glTexImage2DMultisample;
internal IntPtr glTexImage3D;
internal IntPtr glTexImage3DMultisample;
internal IntPtr glTexParameterf;
internal IntPtr glTexParameterfv;
internal IntPtr glTexParameteri;
internal IntPtr glTexParameterIiv;
internal IntPtr glTexParameterIuiv;
internal IntPtr glTexParameteriv;
internal IntPtr glTexStorage1D;
internal IntPtr glTexStorage2D;
internal IntPtr glTexStorage2DMultisample;
internal IntPtr glTexStorage3D;
internal IntPtr glTexStorage3DMultisample;
internal IntPtr glTexSubImage1D;
internal IntPtr glTexSubImage2D;
internal IntPtr glTexSubImage3D;
internal IntPtr glTextureBarrier;
internal IntPtr glTextureBuffer;
internal IntPtr glTextureBufferRange;
internal IntPtr glTextureParameterf;
internal IntPtr glTextureParameterfv;
internal IntPtr glTextureParameteri;
internal IntPtr glTextureParameterIiv;
internal IntPtr glTextureParameterIuiv;
internal IntPtr glTextureParameteriv;
internal IntPtr glTextureStorage1D;
internal IntPtr glTextureStorage2D;
internal IntPtr glTextureStorage2DMultisample;
internal IntPtr glTextureStorage3D;
internal IntPtr glTextureStorage3DMultisample;
internal IntPtr glTextureSubImage1D;
internal IntPtr glTextureSubImage2D;
internal IntPtr glTextureSubImage3D;
internal IntPtr glTextureView;
internal IntPtr glTransformFeedbackBufferBase;
internal IntPtr glTransformFeedbackBufferRange;
internal IntPtr glTransformFeedbackVaryings;
internal IntPtr glUniform1d;
internal IntPtr glUniform1dv;
internal IntPtr glUniform1f;
internal IntPtr glUniform1fv;
internal IntPtr glUniform1i;
internal IntPtr glUniform1iv;
internal IntPtr glUniform1ui;
internal IntPtr glUniform1uiv;
internal IntPtr glUniform2d;
internal IntPtr glUniform2dv;
internal IntPtr glUniform2f;
internal IntPtr glUniform2fv;
internal IntPtr glUniform2i;
internal IntPtr glUniform2iv;
internal IntPtr glUniform2ui;
internal IntPtr glUniform2uiv;
internal IntPtr glUniform3d;
internal IntPtr glUniform3dv;
internal IntPtr glUniform3f;
internal IntPtr glUniform3fv;
internal IntPtr glUniform3i;
internal IntPtr glUniform3iv;
internal IntPtr glUniform3ui;
internal IntPtr glUniform3uiv;
internal IntPtr glUniform4d;
internal IntPtr glUniform4dv;
internal IntPtr glUniform4f;
internal IntPtr glUniform4fv;
internal IntPtr glUniform4i;
internal IntPtr glUniform4iv;
internal IntPtr glUniform4ui;
internal IntPtr glUniform4uiv;
internal IntPtr glUniformBlockBinding;
internal IntPtr glUniformMatrix2dv;
internal IntPtr glUniformMatrix2fv;
internal IntPtr glUniformMatrix2x3dv;
internal IntPtr glUniformMatrix2x3fv;
internal IntPtr glUniformMatrix2x4dv;
internal IntPtr glUniformMatrix2x4fv;
internal IntPtr glUniformMatrix3dv;
internal IntPtr glUniformMatrix3fv;
internal IntPtr glUniformMatrix3x2dv;
internal IntPtr glUniformMatrix3x2fv;
internal IntPtr glUniformMatrix3x4dv;
internal IntPtr glUniformMatrix3x4fv;
internal IntPtr glUniformMatrix4dv;
internal IntPtr glUniformMatrix4fv;
internal IntPtr glUniformMatrix4x2dv;
internal IntPtr glUniformMatrix4x2fv;
internal IntPtr glUniformMatrix4x3dv;
internal IntPtr glUniformMatrix4x3fv;
internal IntPtr glUniformSubroutinesuiv;
internal IntPtr glUnmapBuffer;
internal IntPtr glUnmapNamedBuffer;
internal IntPtr glUseProgram;
internal IntPtr glUseProgramStages;
internal IntPtr glValidateProgram;
internal IntPtr glValidateProgramPipeline;
internal IntPtr glVertexArrayAttribBinding;
internal IntPtr glVertexArrayAttribFormat;
internal IntPtr glVertexArrayAttribIFormat;
internal IntPtr glVertexArrayAttribLFormat;
internal IntPtr glVertexArrayBindingDivisor;
internal IntPtr glVertexArrayElementBuffer;
internal IntPtr glVertexArrayVertexBuffer;
internal IntPtr glVertexArrayVertexBuffers;
internal IntPtr glVertexAttrib1d;
internal IntPtr glVertexAttrib1dv;
internal IntPtr glVertexAttrib1f;
internal IntPtr glVertexAttrib1fv;
internal IntPtr glVertexAttrib1s;
internal IntPtr glVertexAttrib1sv;
internal IntPtr glVertexAttrib2d;
internal IntPtr glVertexAttrib2dv;
internal IntPtr glVertexAttrib2f;
internal IntPtr glVertexAttrib2fv;
internal IntPtr glVertexAttrib2s;
internal IntPtr glVertexAttrib2sv;
internal IntPtr glVertexAttrib3d;
internal IntPtr glVertexAttrib3dv;
internal IntPtr glVertexAttrib3f;
internal IntPtr glVertexAttrib3fv;
internal IntPtr glVertexAttrib3s;
internal IntPtr glVertexAttrib3sv;
internal IntPtr glVertexAttrib4bv;
internal IntPtr glVertexAttrib4d;
internal IntPtr glVertexAttrib4dv;
internal IntPtr glVertexAttrib4f;
internal IntPtr glVertexAttrib4fv;
internal IntPtr glVertexAttrib4iv;
internal IntPtr glVertexAttrib4Nbv;
internal IntPtr glVertexAttrib4Niv;
internal IntPtr glVertexAttrib4Nsv;
internal IntPtr glVertexAttrib4Nub;
internal IntPtr glVertexAttrib4Nubv;
internal IntPtr glVertexAttrib4Nuiv;
internal IntPtr glVertexAttrib4Nusv;
internal IntPtr glVertexAttrib4s;
internal IntPtr glVertexAttrib4sv;
internal IntPtr glVertexAttrib4ubv;
internal IntPtr glVertexAttrib4uiv;
internal IntPtr glVertexAttrib4usv;
internal IntPtr glVertexAttribBinding;
internal IntPtr glVertexAttribDivisor;
internal IntPtr glVertexAttribFormat;
internal IntPtr glVertexAttribI1i;
internal IntPtr glVertexAttribI1iv;
internal IntPtr glVertexAttribI1ui;
internal IntPtr glVertexAttribI1uiv;
internal IntPtr glVertexAttribI2i;
internal IntPtr glVertexAttribI2iv;
internal IntPtr glVertexAttribI2ui;
internal IntPtr glVertexAttribI2uiv;
internal IntPtr glVertexAttribI3i;
internal IntPtr glVertexAttribI3iv;
internal IntPtr glVertexAttribI3ui;
internal IntPtr glVertexAttribI3uiv;
internal IntPtr glVertexAttribI4bv;
internal IntPtr glVertexAttribI4i;
internal IntPtr glVertexAttribI4iv;
internal IntPtr glVertexAttribI4sv;
internal IntPtr glVertexAttribI4ubv;
internal IntPtr glVertexAttribI4ui;
internal IntPtr glVertexAttribI4uiv;
internal IntPtr glVertexAttribI4usv;
internal IntPtr glVertexAttribIFormat;
internal IntPtr glVertexAttribIPointer;
internal IntPtr glVertexAttribL1d;
internal IntPtr glVertexAttribL1dv;
internal IntPtr glVertexAttribL2d;
internal IntPtr glVertexAttribL2dv;
internal IntPtr glVertexAttribL3d;
internal IntPtr glVertexAttribL3dv;
internal IntPtr glVertexAttribL4d;
internal IntPtr glVertexAttribL4dv;
internal IntPtr glVertexAttribLFormat;
internal IntPtr glVertexAttribLPointer;
internal IntPtr glVertexAttribP1ui;
internal IntPtr glVertexAttribP1uiv;
internal IntPtr glVertexAttribP2ui;
internal IntPtr glVertexAttribP2uiv;
internal IntPtr glVertexAttribP3ui;
internal IntPtr glVertexAttribP3uiv;
internal IntPtr glVertexAttribP4ui;
internal IntPtr glVertexAttribP4uiv;
internal IntPtr glVertexAttribPointer;
internal IntPtr glVertexBindingDivisor;
internal IntPtr glViewport;
internal IntPtr glViewportArrayv;
internal IntPtr glViewportIndexedf;
internal IntPtr glViewportIndexedfv;
internal IntPtr glWaitSync;
}
}
@@ -6,7 +6,8 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Threading;
using System;
+2 -2
View File
@@ -7,8 +7,8 @@
using StgSharp.Geometries;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
+3 -3
View File
@@ -6,7 +6,8 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Timing;
using System;
@@ -176,7 +177,6 @@ namespace StgSharp.Graphics
/// </summary>
public abstract void RenderEnd();
#endregion
#endregion
}
}
+3 -4
View File
@@ -5,8 +5,7 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Runtime.CompilerServices;
@@ -38,8 +37,6 @@ namespace StgSharp.Graphics
get => ref _texCoord[index];
}
public Span<Vec2> TextureCoordinate => new Span<Vec2>(_texCoord);
public Image<Rgba8> Image
{
get => _image;
@@ -50,5 +47,7 @@ namespace StgSharp.Graphics
}
}
public Span<Vec2> TextureCoordinate => new Span<Vec2>(_texCoord);
}
}
@@ -5,7 +5,7 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System.Runtime.CompilerServices;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -5,7 +5,7 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Timing;
using System;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System.Runtime.CompilerServices;
@@ -6,8 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -6,8 +6,8 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,7 +7,7 @@
using StgSharp;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.ComponentModel;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System.Numerics;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Numerics;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Numerics;
@@ -6,8 +6,8 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Numerics;
@@ -6,8 +6,8 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Numerics;
@@ -6,7 +6,7 @@
// -----------------------------------------------------------------------------
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Numerics;
+1 -1
View File
@@ -5,7 +5,7 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -7,7 +7,7 @@
using StgSharp.Mathematics;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Collections.Generic;
@@ -0,0 +1,42 @@
// -----------------------------------------------------------------------------
// file="GraphicVector"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace StgSharp.Mathematics.Numeric.Graphics
{
internal static class GraphicVector
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsNormalVectorElement<T>() where T : unmanaged, INumber<T>
{
return typeof(T) == typeof(float) ||
typeof(T) == typeof(int) ||
typeof(T) == typeof(uint);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsWideVectorElement<T>() where T : unmanaged, INumber<T>
{
return typeof(T) == typeof(double) ||
typeof(T) == typeof(long) ||
typeof(T) == typeof(ulong);
}
public static NotSupportedException ThrowUnsupportedTypeException<T>()
{
return new NotSupportedException($"Operation is not supported for type {typeof(T)}");
}
}
}
@@ -16,7 +16,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics.X86;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
[StructLayout(LayoutKind.Explicit, Size = 16 * sizeof(float), Pack = 16)]
public unsafe struct GraphicsMatrix : IEquatable<GraphicsMatrix>
+113 -90
View File
@@ -6,167 +6,190 @@
// -----------------------------------------------------------------------------
using StgSharp.HighPerformance.ProcessorAbstraction;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Numeric;
using StgSharp.Mathematics.Numeric.Graphics;
using System.Collections.Generic;
using System.Net.Http.Headers;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
public static class Vec2
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vector128<T> AsVector128Safe<T>(
this Vec2<T> source
) where T : unmanaged, INumber<T>
{
Vector128<T> result = Vector128<T>.Zero;
Unsafe.WriteUnaligned(ref Unsafe.As<Vector128<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vector128<T> AsVector128Unsafe<T>(
this Vec2<T> source
) where T : unmanaged, INumber<T>
{
Unsafe.SkipInit(out Vector128<T> result);
Unsafe.WriteUnaligned(ref Unsafe.As<Vector128<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vec2<T> FromVector128Safe<T>(
Vector128<T> source
) where T : unmanaged, INumber<T>
{
return Unsafe.As<Vector128<T>, Vec2<T>>(ref source);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vec2<T> FromVector128Unsafe<T>(
Vector128<T> source
) where T : unmanaged, INumber<T>
{
return Unsafe.As<Vector128<T>, Vec2<T>>(ref source);
}
}
/// <summary>
/// A two dimension vector defined by two elements. Vec2 in World are default used as colum
/// vector.
/// </summary>
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
public struct Vec2 : IUnmanagedVector<Vec2>
/// <typeparam name="T">
///
/// </typeparam>
[StructLayout(LayoutKind.Sequential, Pack = 16)]
public struct Vec2<T> : IUnmanagedVector<Vec2<T>> where T : unmanaged, INumber<T>
{
[FieldOffset(0)] internal unsafe fixed float num[2];
[FieldOffset(0)]
internal M128 reg;
[FieldOffset(0)]
internal Vector2 v;
[FieldOffset(0)]
public float X;
[FieldOffset(4)]
public float Y;
internal Vec2(
Vector2 vec
)
{
Unsafe.SkipInit(out reg);
Unsafe.SkipInit(out X);
Unsafe.SkipInit(out Y);
v = vec;
}
internal Vec2(
M128 vec
)
{
Unsafe.SkipInit(out reg);
Unsafe.SkipInit(out X);
Unsafe.SkipInit(out Y);
reg = vec;
reg.Member<ulong>(1) = 0;
}
public T X;
public T Y;
public Vec2(
float x,
float y
T x,
T y
)
{
v = new Vector2(x, y);
X = x;
Y = y;
}
public static Vec2 Unit => new Vec2(1, 1);
public static Vec2<T> Unit => new(T.One, T.One);
public static Vec2 Zero => new Vec2(0, 0);
public static Vec2<T> Zero => new(T.Zero, T.Zero);
public static Vec2 One => new Vec2(1, 1);
public static Vec2<T> One => new(T.One, T.One);
public Vec2 XY
public Vec2<T> XY
{
readonly get => this;
set => this = value;
}
public Vec3 XYZ
{
readonly get => new(reg);
set
{
reg = value.reg;
reg.Member<ulong>(1) = 0;
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Cross(
Vec2 right
public T Cross(
Vec2<T> right
)
{
return X * right.Y - Y * right.X;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Dot(
Vec2 vec
public readonly T Dot(
Vec2<T> vec
)
{
return Vector2.Dot(v, vec.v);
return X * vec.X + Y * vec.Y;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec2 operator -(
Vec2 left,
Vec2 right
public static Vec2<T> operator -(
Vec2<T> left,
Vec2<T> right
)
{
return new Vec2(left.v - right.v);
Vector128<T> leftVec = left.AsVector128Unsafe();
Vector128<T> rightVec = right.AsVector128Unsafe();
return Vec2.FromVector128Unsafe(leftVec + rightVec);
}
public static bool operator !=(
Vec2 left,
Vec2 right
Vec2<T> left,
Vec2<T> right
)
{
return !(left == right);
}
public static Vec2 operator *(
Vec2 vec,
float value
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec2<T> operator *(
Vec2<T> vec,
T value
)
{
return new Vec2(vec.v * value);
}
public static Vec2 operator *(
float value,
Vec2 vec
)
{
return new Vec2(vec.v * value);
Vector128<T> leftVec = vec.AsVector128Unsafe();
return Vec2.FromVector128Unsafe(leftVec * value);
}
public static Vec2 operator /(
Vec2 vec,
float value
public static Vec2<T> operator *(
T value,
Vec2<T> vec
)
{
return new Vec2(vec.v / value);
Vector128<T> leftVec = vec.AsVector128Unsafe();
return Vec2.FromVector128Unsafe(leftVec * value);
}
public static Vec2<T> operator /(
Vec2<T> vec,
T value
)
{
Vector128<T> leftVec = vec.AsVector128Unsafe();
return Vec2.FromVector128Unsafe(leftVec / value);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec2 operator +(
Vec2 left,
Vec2 right
public static Vec2<T> operator +(
Vec2<T> left,
Vec2<T> right
)
{
return new Vec2(left.v + right.v);
Vector128<T> leftVec = left.AsVector128Unsafe();
Vector128<T> rightVec = right.AsVector128Unsafe();
return Vec2.FromVector128Unsafe(leftVec + rightVec);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator ==(
Vec2 left,
Vec2 right
Vec2<T> left,
Vec2<T> right
)
{
return left.v == right.v;
if (Unsafe.SizeOf<T>() == 4) {
return Unsafe.As<Vec2<T>, ulong>(ref left) == Unsafe.As<Vec2<T>, ulong>(ref right);
}
if (Unsafe.SizeOf<T>() == 8) {
return Unsafe.As<Vec2<T>, Vector128<T>>(ref left) == Unsafe.As<Vec2<T>, Vector128<T>>(ref right);
}
#pragma warning disable CA1065
throw new NotSupportedException($"Element type {typeof(T).Name} is not supported.");
#pragma warning restore CA1065
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static implicit operator Vec2(
(float, float) tuple
public static implicit operator Vec2<T>(
(T, T) tuple
)
{
return new Vec2(tuple.Item1, tuple.Item2);
return new Vec2<T>(tuple.Item1, tuple.Item2);
}
}
+87 -207
View File
@@ -5,264 +5,144 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.HighPerformance.ProcessorAbstraction;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Numeric;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
[CollectionBuilder(typeof(Vec3), nameof(FromSpan))]
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
public struct Vec3 : IEquatable<Vec3>, IUnmanagedVector<Vec3>, IEnumerable<float>
public static class Vec3
{
[FieldOffset(0)] internal unsafe fixed float num[3];
[FieldOffset(0)] internal M128 reg;
[FieldOffset(0)] internal Vector3 v;
[FieldOffset(0)] public float X;
[FieldOffset(4)] public float Y;
[FieldOffset(8)] public float Z;
internal Vec3(
M128 vector
)
{
Unsafe.SkipInit(out this);
reg = vector;
reg.Member<uint>(3) = 0;
}
internal Vec3(
Vector3 vector
)
{
v = vector;
}
public Vec3()
{
Unsafe.SkipInit(out this);
}
public Vec3(
Vec2 xy,
float z
)
{
Unsafe.SkipInit(out this);
reg = xy.reg;
Z = z;
}
public Vec3(
float x,
float y,
float z
)
{
Unsafe.SkipInit(out this);
v = new Vector3(x, y, z);
}
public unsafe Vec2 XY
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
readonly get => new(reg);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set => Unsafe.As<Vector3, Vector2>(ref v) = value.v;
}
public Vec3 XYZ
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
readonly get => new(v);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set => this = value;
}
public static Vec3 Zero => new(0, 0, 0);
public static Vec3 One => new(1, 1, 1);
public static Vec3 UnitX => new(1, 0, 0);
public static Vec3 UnitY => new(0, 1, 0);
public static Vec3 UnitZ => new(0, 0, 1);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3 Cross(
Vec3 left,
Vec3 right
)
public static Vec3<T> Cross<T>(Vec3<T> left, Vec3<T> right)
where T : unmanaged, INumber<T>
{
return Linear.Cross(left, right);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public readonly float Dot(
Vec3 right
)
{
return Vector3.Dot(v, right.v);
}
public readonly bool Equals(
Vec3 other
)
{
return reg == other.reg;
}
public override readonly bool Equals(
object obj
)
{
return obj is not null && obj is Vec3 vec && this == vec;
}
public static Vec3 FromSpan(
ReadOnlySpan<float> span
)
{
Vec3 v = new();
span.CopyTo(MemoryMarshal.CreateSpan(ref v.X, 3));
return v;
}
public unsafe IEnumerator<float> GetEnumerator()
{
for (int i = 0; i < 3; i++) {
yield return reg.Member<float>(i);
if (typeof(T) == typeof(float)) {
Vec3<float> result = CrossSingle(
Unsafe.As<Vec3<T>, Vec3<float>>(ref left),
Unsafe.As<Vec3<T>, Vec3<float>>(ref right));
return Unsafe.As<Vec3<float>, Vec3<T>>(ref result);
}
}
public override unsafe int GetHashCode()
{
fixed (float* add = &X) {
return HashCode.Combine(X, Y, Z, (ulong)add);
if (typeof(T) == typeof(double)) {
Vec3<double> result = CrossDouble(
Unsafe.As<Vec3<T>, Vec3<double>>(ref left),
Unsafe.As<Vec3<T>, Vec3<double>>(ref right));
return Unsafe.As<Vec3<double>, Vec3<T>>(ref result);
}
if (typeof(T) == typeof(int)) {
Vec3<int> result = CrossInt32(
Unsafe.As<Vec3<T>, Vec3<int>>(ref left),
Unsafe.As<Vec3<T>, Vec3<int>>(ref right));
return Unsafe.As<Vec3<int>, Vec3<T>>(ref result);
}
if (typeof(T) == typeof(uint)) {
Vec3<uint> result = CrossUInt32(
Unsafe.As<Vec3<T>, Vec3<uint>>(ref left),
Unsafe.As<Vec3<T>, Vec3<uint>>(ref right));
return Unsafe.As<Vec3<uint>, Vec3<T>>(ref result);
}
throw new NotSupportedException($"Cross product is not supported for {typeof(T)}.");
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public readonly float GetMaxValue()
private static Vec3<float> CrossSingle(Vec3<float> left, Vec3<float> right)
{
float ret = X;
ret = ret > Y ? ret : Y;
ret = ret > Z ? ret : Z;
return ret;
}
public static bool IsParallel(
Vec3 left,
Vec3 right
)
{
return Cross(left, right) == Zero;
}
public override readonly string ToString()
{
return $"[{X},{Y},{Z}]";
}
public readonly string ToString(
string sample
)
{
return $"[{X.ToString(sample)},{Y.ToString(sample)},{Z.ToString(sample)}]";
Vector128<float> l = left.AsVector128Safe();
Vector128<float> r = right.AsVector128Safe();
Vector128<int> yzx = Vector128.Create(1, 2, 0, 3);
Vector128<int> zxy = Vector128.Create(2, 0, 1, 3);
Vector128<float> result = Vector128.Shuffle(l, yzx) * Vector128.Shuffle(r, zxy) -
Vector128.Shuffle(l, zxy) * Vector128.Shuffle(r, yzx);
return new(result[0], result[1], result[2]);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3 operator -(
Vec3 vec
)
private static Vec3<double> CrossDouble(Vec3<double> left, Vec3<double> right)
{
return new Vec3(-vec.v);
Vector256<double> l = left.AsVector256Safe();
Vector256<double> r = right.AsVector256Safe();
Vector256<long> yzx = Vector256.Create(1L, 2L, 0L, 3L);
Vector256<long> zxy = Vector256.Create(2L, 0L, 1L, 3L);
Vector256<double> result = Vector256.Shuffle(l, yzx) * Vector256.Shuffle(r, zxy) -
Vector256.Shuffle(l, zxy) * Vector256.Shuffle(r, yzx);
return new(result[0], result[1], result[2]);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3 operator -(
Vec3 left,
Vec3 right
)
private static Vec3<int> CrossInt32(Vec3<int> left, Vec3<int> right)
{
return new Vec3(left.v - right.v);
Vector128<int> l = left.AsVector128Safe();
Vector128<int> r = right.AsVector128Safe();
Vector128<int> yzx = Vector128.Create(1, 2, 0, 3);
Vector128<int> zxy = Vector128.Create(2, 0, 1, 3);
Vector128<int> result = Vector128.Shuffle(l, yzx) * Vector128.Shuffle(r, zxy) -
Vector128.Shuffle(l, zxy) * Vector128.Shuffle(r, yzx);
return new(result[0], result[1], result[2]);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator !=(
Vec3 left,
Vec3 right
)
private static Vec3<uint> CrossUInt32(Vec3<uint> left, Vec3<uint> right)
{
return left.v != right.v;
Vector128<uint> l = left.AsVector128Safe();
Vector128<uint> r = right.AsVector128Safe();
Vector128<uint> yzx = Vector128.Create(1U, 2U, 0U, 3U);
Vector128<uint> zxy = Vector128.Create(2U, 0U, 1U, 3U);
Vector128<uint> result = Vector128.Shuffle(l, yzx) * Vector128.Shuffle(r, zxy) -
Vector128.Shuffle(l, zxy) * Vector128.Shuffle(r, yzx);
return new(result[0], result[1], result[2]);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3 operator *(
Vec3 vec,
float value
)
internal static Vector128<T> AsVector128Safe<T>(this Vec3<T> source)
where T : unmanaged, INumber<T>
{
return new Vec3(vec.v * value);
Vector128<T> result = Vector128<T>.Zero;
Unsafe.WriteUnaligned(ref Unsafe.As<Vector128<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float operator *(
Vec3 left,
Vec3 right
)
internal static Vector256<T> AsVector256Safe<T>(this Vec3<T> source)
where T : unmanaged, INumber<T>
{
return Vector3.Dot(left.v, right.v);
Vector256<T> result = Vector256<T>.Zero;
Unsafe.WriteUnaligned(ref Unsafe.As<Vector256<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3 operator /(
Vec3 vec,
float value
)
internal static Vector128<T> AsVector128Unsafe<T>(this Vec3<T> source)
where T : unmanaged, INumber<T>
{
return new Vec3(vec.v / value);
Unsafe.SkipInit(out Vector128<T> result);
Unsafe.WriteUnaligned(ref Unsafe.As<Vector128<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3 operator +(
Vec3 left,
Vec3 right
)
internal static Vector256<T> AsVector256Unsafe<T>(this Vec3<T> source)
where T : unmanaged, INumber<T>
{
return new Vec3(left.v + right.v);
Unsafe.SkipInit(out Vector256<T> result);
Unsafe.WriteUnaligned(ref Unsafe.As<Vector256<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator ==(
Vec3 left,
Vec3 right
)
internal static Vec3<T> FromVector128Unsafe<T>(Vector128<T> source)
where T : unmanaged, INumber<T>
{
return left.v == right.v;
return Unsafe.As<Vector128<T>, Vec3<T>>(ref source);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static unsafe implicit operator Vec3(
(float, float, float) tuple
)
internal static Vec3<T> FromVector256Unsafe<T>(Vector256<T> source)
where T : unmanaged, INumber<T>
{
return Unsafe.As<(float,float,float), Vec3>(ref tuple);
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
return Unsafe.As<Vector256<T>, Vec3<T>>(ref source);
}
}
@@ -0,0 +1,300 @@
// -----------------------------------------------------------------------------
// file="Vec3_T"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Numeric;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
namespace StgSharp.Mathematics.Numeric.Graphics
{
/// <summary>
/// A tightly packed three-dimensional numeric vector.
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack = 16)]
public struct Vec3<T> : IUnmanagedVector<Vec3<T>>, IEquatable<Vec3<T>>, IEnumerable<T>
where T : unmanaged, INumber<T>
{
public T X;
public T Y;
public T Z;
public Vec3(
Vec2<T> xy,
T z
)
{
X = xy.X;
Y = xy.Y;
Z = z;
}
public Vec3(
T x,
T y,
T z
)
{
X = x;
Y = y;
Z = z;
}
public Vec2<T> XY
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
readonly get => new(X, Y);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set
{
X = value.X;
Y = value.Y;
}
}
public Vec3<T> XYZ
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
readonly get => this;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set => this = value;
}
public static Vec3<T> Zero => new(T.Zero, T.Zero, T.Zero);
public static Vec3<T> One => new(T.One, T.One, T.One);
public static Vec3<T> UnitX => new(T.One, T.Zero, T.Zero);
public static Vec3<T> UnitY => new(T.Zero, T.One, T.Zero);
public static Vec3<T> UnitZ => new(T.Zero, T.Zero, T.One);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public readonly T Dot(
Vec3<T> right
)
{
if (Unsafe.SizeOf<T>() == 4)
{
Vec4<T> v = Vec4.FromVector128Unsafe(this.AsVector128Unsafe() * right.AsVector128Unsafe());
return v.X + v.Y + v.Z;
}
if (Unsafe.SizeOf<T>() == 4)
{
Vec4<T> v = Vec4.FromVector128Unsafe(this.AsVector128Unsafe() * right.AsVector128Unsafe());
return v.X + v.Y + v.Z;
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public readonly bool Equals(
Vec3<T> other
)
{
return X == other.X && Y == other.Y && Z == other.Z;
}
public override readonly bool Equals(
object? obj
)
{
return obj is Vec3<T> other && Equals(other);
}
public static Vec3<T> FromSpan(
ReadOnlySpan<T> span
)
{
if (span.Length < 3) {
throw new ArgumentException("Span length must be at least 3.", nameof(span));
}
return new(span[0], span[1], span[2]);
}
public readonly IEnumerator<T> GetEnumerator()
{
yield return X;
yield return Y;
yield return Z;
}
public override readonly int GetHashCode()
{
return HashCode.Combine(X, Y, Z);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public readonly T GetMaxValue()
{
return T.Max(X, T.Max(Y, Z));
}
public static bool IsParallel(
Vec3<T> left,
Vec3<T> right
)
{
return Vec3.Cross(left, right) == Zero;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3<T> operator -(
Vec3<T> value
)
{
if (Unsafe.SizeOf<T>() == 4) {
return Vec3.FromVector128Unsafe(Vector128<T>.Zero - value.AsVector128Unsafe());
}
if (Unsafe.SizeOf<T>() == 8) {
return Vec3.FromVector256Unsafe(Vector256<T>.Zero - value.AsVector256Unsafe());
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3<T> operator -(
Vec3<T> left,
Vec3<T> right
)
{
if (Unsafe.SizeOf<T>() == 4)
{
Vector128<T> left_v128 = left.AsVector128Unsafe();
Vector128<T> right_v128 = right.AsVector128Unsafe();
return Vec3.FromVector128Unsafe(left_v128 - right_v128);
}
if (Unsafe.SizeOf<T>() == 8)
{
Vector256<T> left_v256 = left.AsVector256Unsafe();
Vector256<T> right_v256 = right.AsVector256Unsafe();
return Vec3.FromVector256Unsafe(left_v256 - right_v256);
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator !=(
Vec3<T> left,
Vec3<T> right
)
{
return !left.Equals(right);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3<T> operator *(
Vec3<T> vector,
T scalar
)
{
if (Unsafe.SizeOf<T>() == 4)
{
Vector128<T> vector_v128 = vector.AsVector128Unsafe();
Vector128<T> scalar_v128 = Vector128.Create(scalar);
return Vec3.FromVector128Unsafe(vector_v128 * scalar_v128);
}
if (Unsafe.SizeOf<T>() == 8)
{
Vector256<T> vector_v256 = vector.AsVector256Unsafe();
Vector256<T> scalar_v256 = Vector256.Create(scalar);
return Vec3.FromVector256Unsafe(vector_v256 * scalar_v256);
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3<T> operator *(
T scalar,
Vec3<T> vector
)
{
return vector * scalar;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T operator *(
Vec3<T> left,
Vec3<T> right
)
{
return left.Dot(right);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3<T> operator /(
Vec3<T> vector,
T scalar
)
{
if (Unsafe.SizeOf<T>() == 4)
{
Vector128<T> vector_v128 = vector.AsVector128Unsafe();
Vector128<T> scalar_v128 = Vector128.Create(scalar);
return Vec3.FromVector128Unsafe(vector_v128 / scalar_v128);
}
if (Unsafe.SizeOf<T>() == 8)
{
Vector256<T> vector_v256 = vector.AsVector256Unsafe();
Vector256<T> scalar_v256 = Vector256.Create(scalar);
return Vec3.FromVector256Unsafe(vector_v256 / scalar_v256);
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec3<T> operator +(
Vec3<T> left,
Vec3<T> right
)
{
if (Unsafe.SizeOf<T>() == 4)
{
Vector128<T> left_v128 = left.AsVector128Unsafe();
Vector128<T> right_v128 = right.AsVector128Unsafe();
return Vec3.FromVector128Unsafe(left_v128 + right_v128);
}
if (Unsafe.SizeOf<T>() == 8)
{
Vector256<T> left_v256 = left.AsVector256Unsafe();
Vector256<T> right_v256 = right.AsVector256Unsafe();
return Vec3.FromVector256Unsafe(left_v256 + right_v256);
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool operator ==(
Vec3<T> left,
Vec3<T> right
)
{
return left.Equals(right);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static implicit operator Vec3<T>(
(T X, T Y, T Z) tuple
)
{
return new(tuple.X, tuple.Y, tuple.Z);
}
readonly IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
+115 -119
View File
@@ -9,82 +9,96 @@ using StgSharp.HighPerformance.ProcessorAbstraction;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Internal;
using StgSharp.Mathematics.Numeric;
using StgSharp.Mathematics.Numeric.Graphics;
using System;
using System.Data.Common;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
[CollectionBuilder(builderType:typeof(Vec4), methodName: nameof(Vec4.FromSpan))]
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
public unsafe struct Vec4 : IEquatable<Vec4>, IUnmanagedVector<Vec4>
public static class Vec4
{
[FieldOffset(0)] internal unsafe fixed float num[4];
[FieldOffset(0)] internal M128 reg;
[FieldOffset(0)] internal Vector4 vec;
[FieldOffset(12)] public float W;
[FieldOffset(0)] public float X;
[FieldOffset(4)] public float Y;
[FieldOffset(8)] public float Z;
internal Vec4(
Vector4 v
)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vector128<T> AsVector128Unsafe<T>(
this Vec4<T> source
) where T : unmanaged, INumber<T>
{
Unsafe.SkipInit(out X);
Unsafe.SkipInit(out Y);
Unsafe.SkipInit(out Z);
Unsafe.SkipInit(out W);
Unsafe.SkipInit(out reg);
vec = v;
Unsafe.SkipInit(out Vector128<T> result);
Unsafe.WriteUnaligned(ref Unsafe.As<Vector128<T>, byte>(ref result), source);
return result;
}
internal Vec4(
M128 v
)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vector256<T> AsVector256Unsafe<T>(
this Vec4<T> source
) where T : unmanaged, INumber<T>
{
Unsafe.SkipInit(out X);
Unsafe.SkipInit(out Y);
Unsafe.SkipInit(out Z);
Unsafe.SkipInit(out W);
Unsafe.SkipInit(out vec);
reg = v;
Unsafe.SkipInit(out Vector256<T> result);
Unsafe.WriteUnaligned(ref Unsafe.As<Vector256<T>, byte>(ref result), source);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vec4<T> FromVector128Unsafe<T>(
Vector128<T> source
) where T : unmanaged, INumber<T>
{
return Unsafe.As<Vector128<T>, Vec4<T>>(ref source);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static Vec4<T> FromVector256Unsafe<T>(
Vector256<T> source
) where T : unmanaged, INumber<T>
{
return Unsafe.As<Vector256<T>, Vec4<T>>(ref source);
}
}
/// <summary>
/// A three dimension vector defined by two elements. Vec3 in World are default used as colum
/// vector.
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack = 16)]
public struct Vec4<T> : IUnmanagedVector<Vec4<T>> where T : unmanaged, INumber<T>
{
public T W;
public T X;
public T Y;
public T Z;
public Vec4(
Vec3 v3,
float w
Vec3<T> v3,
T w
)
{
Unsafe.SkipInit(out X);
Unsafe.SkipInit(out Y);
Unsafe.SkipInit(out Z);
Unsafe.SkipInit(out W);
reg = v3.reg;
XYZ = v3;
W = w;
}
public Vec4(
float x,
float y,
float z,
float w
T x,
T y,
T z,
T w
)
{
vec = new Vector4(x, y, z, w);
X = x;
Y = y;
Z = z;
W = w;
}
public unsafe Vec2 XY
public unsafe Vec2<T> XY
{
get => new Vec2(reg);
get => Vec2.FromVector128Unsafe(this.AsVector128Unsafe());
set
{
X = value.X;
@@ -92,132 +106,114 @@ namespace StgSharp.Mathematics.Graphics
}
}
public unsafe Vec3 XYZ
public unsafe Vec3<T> XYZ
{
get => new Vec3(reg);
get => Vec3.FromVector128Unsafe(this.AsVector128Unsafe());
set
{
float w = W;
reg = value.reg;
T w = W;
Unsafe.As<T, Vec3<T>>(ref X) = value;
W = w;
}
}
public static Vec4 One => new Vec4(1, 1, 1, 1);
public static Vec4<T> One => new(T.One, T.One, T.One, T.One);
public static Vec4 Zero => new Vec4(0, 0, 0, 0);
public static Vec4<T> Zero => new(T.Zero, T.Zero, T.Zero, T.Zero);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec4 Add(
Vec4 left,
Vec4 right
public static Vec4<T> Add(
Vec4<T> left,
Vec4<T> right
)
{
return left + right;
}
public ReadOnlySpan<float> AsSpan()
public ReadOnlySpan<T> AsSpan()
{
return MemoryMarshal.CreateReadOnlySpan(ref reg.Member<float>(0), 4);
return MemoryMarshal.CreateReadOnlySpan(ref X, 4);
}
public override bool Equals(
object obj
)
{
return (obj is Vec4 v) && (v == this);
return (obj is Vec4<T> v) && (v == this);
}
public static Vec4 FromSpan(
ReadOnlySpan<float> span
public static Vec4<T> FromSpan(
ReadOnlySpan<T> span
)
{
if (span.Length < 4) {
throw new ArgumentException("Span length must be at least 4.", nameof(span));
}
// Read 4 floats as a Vector4 in one operation without per-element copy.
Vector4 v = MemoryMarshal.Read<Vector4>(MemoryMarshal.AsBytes(span));
return new Vec4(v);
Unsafe.SkipInit(out Vec4<T> result);
Span<T> target = MemoryMarshal.CreateSpan(ref result.X, 4);
span[..4].CopyTo(target);
return result;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ReadOnlySpan<float>.Enumerator GetEnumerator()
public ReadOnlySpan<T>.Enumerator GetEnumerator()
{
return AsSpan().GetEnumerator();
}
public override int GetHashCode()
{
return vec.GetHashCode();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec4 Subtract(
Vec4 left,
Vec4 right
public static Vec4<T> operator -(
Vec4<T> left,
Vec4<T> right
)
{
return left - right;
}
public override string ToString()
{
return vec.ToString();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec4 operator -(
Vec4 left,
Vec4 right
)
{
return new Vec4(left.vec - right.vec);
if (Unsafe.SizeOf<T>() == 4) {
return Vec4.FromVector128Unsafe(left.AsVector128Unsafe() - right.AsVector128Unsafe());
}
if (Unsafe.SizeOf<T>() == 8) {
return Vec4.FromVector256Unsafe(left.AsVector256Unsafe() - right.AsVector256Unsafe());
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
public static bool operator !=(
Vec4 left,
Vec4 right
Vec4<T> left,
Vec4<T> right
)
{
return !(left == right);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec4 operator *(
GraphicsMatrix mat,
Vec4 vec
public static Vec4<T> operator +(
Vec4<T> left,
Vec4<T> right
)
{
GraphicsMatrix transpose = mat.Transpose;
return new Vec4(Vector4.Dot(transpose.mat.colum0, vec.vec),
Vector4.Dot(transpose.mat.colum1, vec.vec),
Vector4.Dot(transpose.mat.colum2, vec.vec),
Vector4.Dot(transpose.mat.colum3, vec.vec));
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vec4 operator +(
Vec4 left,
Vec4 right
)
{
return new Vec4(left.vec + right.vec);
if (Unsafe.SizeOf<T>() == 4) {
return Vec4.FromVector128Unsafe(left.AsVector128Unsafe() + right.AsVector128Unsafe());
}
if (Unsafe.SizeOf<T>() == 8) {
return Vec4.FromVector256Unsafe(left.AsVector256Unsafe() + right.AsVector256Unsafe());
}
throw GraphicVector.ThrowUnsupportedTypeException<T>();
}
public static bool operator ==(
Vec4 left,
Vec4 right
Vec4<T> left,
Vec4<T> right
)
{
return left.vec == right.vec;
}
bool IEquatable<Vec4>.Equals(
Vec4 other
)
{
return vec == other.vec;
if (Unsafe.SizeOf<T>() == 4) {
return left.AsVector128Unsafe() == right.AsVector128Unsafe();
}
if (Unsafe.SizeOf<T>() == 8) {
return left.AsVector256Unsafe() == right.AsVector256Unsafe();
}
#pragma warning disable CA1065
throw GraphicVector.ThrowUnsupportedTypeException<T>();
#pragma warning restore CA1065
}
}
@@ -1,35 +0,0 @@
// -----------------------------------------------------------------------------
// file="Vector.Cross"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
namespace StgSharp.Mathematics.Graphics
{
public static unsafe partial class Linear
{
public static float Cross(
Vec2 vec1,
Vec2 vec2
)
{
return (vec1.X * vec2.Y) - (vec1.Y * vec2.X);
}
public static Vec3 Cross(
Vec3 vec1,
Vec3 vec2
)
{
return new Vec3(
(vec1.Y * vec2.Z) - (vec1.Z * vec2.Y),
(vec1.X * vec2.Z) - (vec1.Z * vec2.X),
(vec1.X * vec2.Y) - (vec1.Y * vec2.X));
}
}
}
@@ -5,26 +5,26 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
public static unsafe partial class Linear
{
public static float GetAngle(
Vec2 vec1,
Vec2 vec2
)
public static T GetAngle<T>(
Vec2<T> vec1,
Vec2<T> vec2
) where T : unmanaged, INumber<T>
{
return MathF.Acos(
1 / (vec1.GetLength() * vec2.GetLength()));
}
public static float GetAngle(
Vec3 vec1,
Vec3 vec2
)
public static T GetAngle<T>(
Vec3<T> vec1,
Vec3<T> vec2
) where T : unmanaged, INumber<T>
{
return MathF.Acos(vec1 * vec2 / (vec1.GetLength() * vec2.GetLength()));
}
@@ -5,25 +5,25 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
public static unsafe partial class Linear
{
public static float GetLength(
this Vec3 vec
)
public static T GetLength<T>(
this Vec3<T> vec
) where T : unmanaged, INumber<T>
{
return MathF.Sqrt(vec.Dot(vec));
return T.Sqrt(vec.Dot(vec));
}
public static float GetLength(
this Vec2 vec
)
public static T GetLength<T>(
this Vec2<T> vec
) where T : unmanaged, INumber<T>
{
return MathF.Sqrt(vec.Dot(vec));
return T.Sqrt(vec.Dot(vec));
}
}
@@ -5,10 +5,10 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System.Numerics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
public static partial class Linear
{
@@ -5,10 +5,10 @@
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using System.Numerics;
namespace StgSharp.Mathematics.Graphics
namespace StgSharp.Mathematics.Numeric.Graphics
{
public static partial class Linear
{
+19
View File
@@ -0,0 +1,19 @@
# Tests and Experiments
This directory contains automated tests, manual diagnostic programs, and standalone experiments. It is separate from `src` so test-only dependencies and exploratory code are not included in production assemblies.
## Directory map
| Directory | Purpose |
| --- | --- |
| `StgSharpDebug` | Executable test harness for manual debugging and stress testing of allocators, matrices, rendering, NGRA, and other subsystems. This is not an automated unit-test suite. |
| `STgSharpTest` | Older MSTest-based tests for the former Script/EXPRESS and related projects. Some references and machine-specific test data are legacy and may require repair before the project can run. |
| `SingleFile` | Standalone source experiments and generated-code samples that are not part of a project or the normal build. |
Run the active debug harness directly when investigating a subsystem:
```powershell
dotnet run --project test/StgSharpDebug/StgSharpDebug.csproj
```
New repeatable tests should use a test project and avoid machine-specific paths, external mutable data, and dependencies on previous test execution. Keep one-off investigations in `SingleFile` or the manual debug harness until their expected behavior is stable enough for automation.
+96 -93
View File
@@ -9,7 +9,8 @@ using StgSharp.Geometries;
using StgSharp.Graphics;
using StgSharp.Graphics.OpenGL;
using StgSharp.Mathematics;
using StgSharp.Mathematics.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Mathematics.Numeric.Graphics;
using StgSharp.Timing;
using System;
@@ -202,98 +203,6 @@ namespace StgSharp
0)) * rotation;
}
private Shader CreateShaderSet(
ShaderType type,
int count
)
{
GlHandle[] handles = new GlHandle[count];
for (int index = 0; index < handles.Length; index++) {
handles[index] = GL.CreateShader((uint)type);
}
return new Shader(handles, type);
}
private void CompileShaderFromFile(
GlHandle shader,
string path
)
{
byte[] source = File.ReadAllBytes(path);
if (source.Length == 0) {
throw new InvalidOperationException($"Shader source is empty: {path}");
}
GL.ShaderSource(shader, source);
GL.CompileShader(shader);
Span<int> status = stackalloc int[1];
GL.GetShaderiv(shader, glConst.COMPILE_STATUS, status);
if (status[0] != 0) {
return;
}
throw new InvalidOperationException(
$"Failed to compile shader '{path}'.{Environment.NewLine}{GetShaderInfoLog(shader)}");
}
private void LinkShaderProgram(
GlHandle program
)
{
GL.LinkProgram(program);
Span<int> status = stackalloc int[1];
GL.GetProgramiv(program, glConst.LINK_STATUS, status);
if (status[0] != 0) {
return;
}
throw new InvalidOperationException(
$"Failed to link shader program.{Environment.NewLine}{GetProgramInfoLog(program)}");
}
private string GetShaderInfoLog(
GlHandle shader
)
{
Span<int> requiredLength = stackalloc int[1];
GL.GetShaderiv(shader, glConst.INFO_LOG_LENGTH, requiredLength);
if (requiredLength[0] <= 1) {
return "OpenGL did not provide a shader info log.";
}
byte[] bytes = new byte[requiredLength[0]];
GL.GetShaderInfoLog(shader, out int written, bytes);
return Encoding.UTF8.GetString(bytes, 0, Math.Clamp(written, 0, bytes.Length))
.TrimEnd('\0');
}
private string GetProgramInfoLog(
GlHandle program
)
{
Span<int> requiredLength = stackalloc int[1];
GL.GetProgramiv(program, glConst.INFO_LOG_LENGTH, requiredLength);
if (requiredLength[0] <= 1) {
return "OpenGL did not provide a program info log.";
}
byte[] bytes = new byte[requiredLength[0]];
GL.GetProgramInfoLog(program, out int written, bytes);
return Encoding.UTF8.GetString(bytes, 0, Math.Clamp(written, 0, bytes.Length))
.TrimEnd('\0');
}
private void DeleteShaderSet(
Shader shaderSet
)
{
for (int index = 0; index < shaderSet.Count; index++) {
GL.DeleteShader(shaderSet[index]);
}
}
protected override void CustomizeDeinit()
{
GL.DeleteProgram(s.Handle);
@@ -521,5 +430,99 @@ namespace StgSharp
GL.Assert(true);
}
private void CompileShaderFromFile(
GlHandle shader,
string path
)
{
byte[] source = File.ReadAllBytes(path);
if (source.Length == 0) {
throw new InvalidOperationException($"Shader source is empty: {path}");
}
GL.ShaderSource(shader, source);
GL.CompileShader(shader);
Span<int> status = stackalloc int[1];
GL.GetShaderiv(shader, glConst.COMPILE_STATUS, status);
if (status[0] != 0) {
return;
}
throw new InvalidOperationException(
$"Failed to compile shader '{path}'.{Environment.NewLine}{GetShaderInfoLog(shader)}");
}
private Shader CreateShaderSet(
ShaderType type,
int count
)
{
GlHandle[] handles = new GlHandle[count];
for (int index = 0; index < handles.Length; index++) {
handles[index] = GL.CreateShader((uint)type);
}
return new Shader(handles, type);
}
private void DeleteShaderSet(
Shader shaderSet
)
{
for (int index = 0; index < shaderSet.Count; index++) {
GL.DeleteShader(shaderSet[index]);
}
}
private string GetProgramInfoLog(
GlHandle program
)
{
Span<int> requiredLength = stackalloc int[1];
GL.GetProgramiv(program, glConst.INFO_LOG_LENGTH, requiredLength);
if (requiredLength[0] <= 1) {
return "OpenGL did not provide a program info log.";
}
byte[] bytes = new byte[requiredLength[0]];
GL.GetProgramInfoLog(program, out int written, bytes);
return Encoding.UTF8
.GetString(bytes, 0, Math.Clamp(written, 0, bytes.Length))
.TrimEnd('\0');
}
private string GetShaderInfoLog(
GlHandle shader
)
{
Span<int> requiredLength = stackalloc int[1];
GL.GetShaderiv(shader, glConst.INFO_LOG_LENGTH, requiredLength);
if (requiredLength[0] <= 1) {
return "OpenGL did not provide a shader info log.";
}
byte[] bytes = new byte[requiredLength[0]];
GL.GetShaderInfoLog(shader, out int written, bytes);
return Encoding.UTF8
.GetString(bytes, 0, Math.Clamp(written, 0, bytes.Length))
.TrimEnd('\0');
}
private void LinkShaderProgram(
GlHandle program
)
{
GL.LinkProgram(program);
Span<int> status = stackalloc int[1];
GL.GetProgramiv(program, glConst.LINK_STATUS, status);
if (status[0] != 0) {
return;
}
throw new InvalidOperationException(
$"Failed to link shader program.{Environment.NewLine}{GetProgramInfoLog(program)}");
}
}
}
+17
View File
@@ -0,0 +1,17 @@
# Development Tools
This directory contains repository-maintenance and source-generation programs. Tools are kept outside `src` because they help build or maintain StgSharp but are not shipped as part of the runtime libraries.
## Directory map
| Directory | Purpose |
| --- | --- |
| `StgSharp.GenerateGL` | Reads the Khronos `gl.xml` registry, projects the OpenGL 4.6 Core API, analyzes function families, and generates the managed OpenGL bindings used by `StgSharp.Graphics`. |
`StgSharp.GenerateGL` has its own `README.md` with its pipeline, naming rules, and interactive commands. The common direct-generation command is:
```powershell
dotnet run --project tools/StgSharp.GenerateGL/StgSharp.GenerateGL.csproj -- generate src/StgSharp.Graphics/OpenGL/Generated
```
Generated files begin with `// <auto-generated>` and should not be edited manually. Change the registry projection, analysis, naming, or generation code here and regenerate the destination instead.
@@ -80,6 +80,9 @@ namespace StgSharp.GenerateGL.Generation
new GeneratedFile(
"OpenglContext.g.cs",
GenerateContext(commands, typeMapper)),
new GeneratedFile(
"glContextShadow.g.cs",
GenerateContextShadow(commands)),
};
for (int index = 0; index < managedGroups.Count; index++)
{
@@ -329,11 +332,10 @@ namespace StgSharp.GenerateGL.Generation
AppendGeneratedHeader(builder, "Desktop OpenGL core function pointer table");
builder.Append("namespace StgSharp.Graphics.OpenGL\n");
builder.Append("{\n");
builder.Append(" [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]\n");
builder.Append(" public unsafe partial struct OpenglContext\n");
builder.Append(" {\n");
foreach (GlCommandDefinition command in commands.OrderBy(
value => value.Name,
StringComparer.Ordinal))
foreach (GlCommandDefinition command in OrderCommands(commands))
{
builder.Append(" internal delegate* unmanaged<");
foreach (GlParameterDefinition parameter in command.Parameters)
@@ -353,6 +355,38 @@ namespace StgSharp.GenerateGL.Generation
return builder.ToString();
}
private static string GenerateContextShadow(
IReadOnlyList<GlCommandDefinition> commands
)
{
StringBuilder builder = new StringBuilder(64 * 1024);
AppendGeneratedHeader(builder, "Native-address shadow of the OpenGL function pointer table");
builder.Append("namespace StgSharp.Graphics.OpenGL\n");
builder.Append("{\n");
builder.Append(" [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]\n");
builder.Append(" internal struct glContextShadow\n");
builder.Append(" {\n");
foreach (GlCommandDefinition command in OrderCommands(commands))
{
builder.Append(" internal nint ");
builder.Append(command.Name);
builder.Append(";\n");
}
builder.Append(" }\n");
builder.Append("}\n");
return builder.ToString();
}
private static IEnumerable<GlCommandDefinition> OrderCommands(
IReadOnlyList<GlCommandDefinition> commands
)
{
return commands.OrderBy(
value => value.Name,
StringComparer.Ordinal);
}
private static string GenerateFunctions(
IReadOnlyList<ManagedMethodDefinition> methods,
string description,
@@ -86,6 +86,26 @@ namespace StgSharp.GenerateGL.Naming
.Replace(
"relativeoffset",
"relativeOffset",
StringComparison.Ordinal)
.Replace(
"pname",
"pName",
StringComparison.Ordinal)
.Replace(
"xoffset",
"xOffset",
StringComparison.Ordinal)
.Replace(
"yoffset",
"yOffset",
StringComparison.Ordinal)
.Replace(
"zoffset",
"zOffset",
StringComparison.Ordinal)
.Replace(
"vaobj",
"vertexArray",
StringComparison.Ordinal);
return _attributeParameterWord.Replace(result, "attribute");
}
+4 -1
View File
@@ -60,6 +60,7 @@ Generated files:
- `glconst.cs`: core constants;
- `OpenglContext.g.cs`: the function-pointer table with native names and ABI types;
- `glContextShadow.g.cs`: an identically ordered `nint` table used while loading native entry points;
- `OpenGLFunction.Base.g.cs`: APIs introduced through OpenGL 3.2 and retained in the target profile;
- `OpenGLFunction.v3_3.g.cs` through `OpenGLFunction.v4_6.g.cs`: APIs introduced by each later core version.
@@ -112,6 +113,9 @@ Safe lexical normalization applies to all public methods:
| `attribindex` | `attributeIndex` |
| `bindingindex` | `bindingIndex` |
| `relativeoffset` | `relativeOffset` |
| `pname` | `pName` |
| `xoffset` / `yoffset` / `zoffset` | `xOffset` / `yOffset` / `zOffset` |
| `vaobj` | `vertexArray` |
Families that represent distinct semantics receive explicit names:
@@ -154,4 +158,3 @@ The generator does not emit `<param>` or `<returns>` elements and does not copy
- `Naming/`: C# identifier and semantic-family naming policies;
- `XmlCli.cs`, `RegistryCli.cs`, and `FunctionFamilyCli.cs`: interactive inspection;
- `GenerateCli.cs`: in-memory preview and protected directory output.