Generated opengl function binding added. All opengl core profile function is now available but not in C# flavour.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="TextureGL"
|
||||
// Project: StgSharp
|
||||
@@ -44,14 +44,19 @@ namespace StgSharp.Graphics.OpenGL
|
||||
private OpenGLFunction _gl;
|
||||
internal GlHandle[] _textureHandle;
|
||||
|
||||
internal TextureGL(int count, glRender binding)
|
||||
internal TextureGL(
|
||||
int count,
|
||||
glRender binding
|
||||
)
|
||||
{
|
||||
// sourceList = new Image[count];
|
||||
this._gl = binding.GL;
|
||||
_textureHandle = _gl.GenTextures(count);
|
||||
}
|
||||
|
||||
public GlHandle this[int index]
|
||||
public GlHandle this[
|
||||
int index
|
||||
]
|
||||
{
|
||||
get => _textureHandle[index];
|
||||
}
|
||||
@@ -70,12 +75,16 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
internal OpenGLFunction GL => _gl;
|
||||
|
||||
public void ActivateAs(TextureUnit unit)
|
||||
public void ActivateAs(
|
||||
TextureUnit unit
|
||||
)
|
||||
{
|
||||
_gl.ActiveTextureUnit((uint)unit);
|
||||
}
|
||||
|
||||
public void Bind2D(int index)
|
||||
public void Bind2D(
|
||||
int index
|
||||
)
|
||||
{
|
||||
currentEditingTextureIndex = index;
|
||||
_gl.BindTexture(glConst.TEXTURE_2D, _textureHandle[index]);
|
||||
@@ -90,19 +99,25 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// <param _label="i">
|
||||
///
|
||||
/// </param>
|
||||
public unsafe void LoadTexture(int index, Image i)
|
||||
public unsafe void LoadTexture(
|
||||
int index,
|
||||
Image i
|
||||
)
|
||||
{
|
||||
byte[] handle = i.PixelBuffer;
|
||||
_gl.TextureImage2d(
|
||||
Texture2DTarget.Texture2D, 0, i.Channel, (uint)i.Width, (uint)i.Height, i.Channel, i.PixelLayout,
|
||||
pixels:handle);
|
||||
_gl.TextureImage2d(Texture2DTarget.Texture2D, 0, i.Channel, i.Width, i.Height,
|
||||
i.Channel, i.PixelLayout, pixels:handle);
|
||||
_gl.GenerateMipmap(Texture2DTarget.Texture2D);
|
||||
}
|
||||
|
||||
#region texture setting
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Set2dFilterProperty(int index, TextureFilter onMinify, TextureFilter onMagnify)
|
||||
public void Set2dFilterProperty(
|
||||
int index,
|
||||
TextureFilter onMinify,
|
||||
TextureFilter onMagnify
|
||||
)
|
||||
{
|
||||
#if DEBUG
|
||||
if (index != currentEditingTextureIndex)
|
||||
@@ -117,7 +132,11 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Set2dWrapProperty(int index, TextureWrap onHorizontial, TextureWrap onVertical)
|
||||
public void Set2dWrapProperty(
|
||||
int index,
|
||||
TextureWrap onHorizontial,
|
||||
TextureWrap onVertical
|
||||
)
|
||||
{
|
||||
#if DEBUG
|
||||
if (index != currentEditingTextureIndex)
|
||||
@@ -132,7 +151,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Set2dProperty(int index, TextureProperty property)
|
||||
public void Set2dProperty(
|
||||
int index,
|
||||
TextureProperty property
|
||||
)
|
||||
{
|
||||
Set2dFilterProperty(index, property.FilterOnMinify, property.FilterOnMagnify);
|
||||
Set2dWrapProperty(index, property.WrapOnHorizontial, property.WrapOnVertical);
|
||||
@@ -156,7 +178,8 @@ namespace StgSharp.Graphics.OpenGL
|
||||
TextureFilter onMagnify,
|
||||
TextureFilter onMinify,
|
||||
TextureWrap onHorizontial,
|
||||
TextureWrap onVertical)
|
||||
TextureWrap onVertical
|
||||
)
|
||||
{
|
||||
FilterOnMagnify = onMagnify;
|
||||
FilterOnMinify = onMinify;
|
||||
@@ -188,15 +211,17 @@ namespace StgSharp.Graphics.OpenGL
|
||||
set => vert = value;
|
||||
}
|
||||
|
||||
public override bool Equals([NotNullWhen(true)] object obj)
|
||||
public override bool Equals(
|
||||
[NotNullWhen(true)] object obj
|
||||
)
|
||||
{
|
||||
return base.Equals(obj);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(
|
||||
FilterOnMagnify, FilterOnMagnify, WrapOnHorizontial, WrapOnVertical);
|
||||
return HashCode.Combine(FilterOnMagnify, FilterOnMagnify, WrapOnHorizontial,
|
||||
WrapOnVertical);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
@@ -204,12 +229,18 @@ namespace StgSharp.Graphics.OpenGL
|
||||
return $"FilterOnMagnify:{FilterOnMagnify}, " + $"FilterOnMagnify:{FilterOnMagnify}, " + $"WrapOnHorizontial:{WrapOnHorizontial}, " + $"WrapOnVertical:{WrapOnVertical}";
|
||||
}
|
||||
|
||||
public static bool operator !=(TextureProperty left, TextureProperty right)
|
||||
public static bool operator !=(
|
||||
TextureProperty left,
|
||||
TextureProperty right
|
||||
)
|
||||
{
|
||||
return left.mask != right.mask;
|
||||
}
|
||||
|
||||
public static bool operator ==(TextureProperty left, TextureProperty right)
|
||||
public static bool operator ==(
|
||||
TextureProperty left,
|
||||
TextureProperty right
|
||||
)
|
||||
{
|
||||
return left.mask == right.mask;
|
||||
}
|
||||
@@ -218,11 +249,12 @@ namespace StgSharp.Graphics.OpenGL
|
||||
(
|
||||
TextureFilter onMagnify, TextureFilter onMinify,
|
||||
TextureWrap onHorizontial, TextureWrap onVertical
|
||||
) propertyValueTuple)
|
||||
) propertyValueTuple
|
||||
)
|
||||
{
|
||||
return new TextureProperty(
|
||||
propertyValueTuple.onMagnify, propertyValueTuple.onMinify,
|
||||
propertyValueTuple.onHorizontial, propertyValueTuple.onVertical);
|
||||
return new TextureProperty(propertyValueTuple.onMagnify, propertyValueTuple.onMinify,
|
||||
propertyValueTuple.onHorizontial,
|
||||
propertyValueTuple.onVertical);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="VAO"
|
||||
// Project: StgSharp
|
||||
@@ -36,14 +36,19 @@ namespace StgSharp.Graphics.OpenGL
|
||||
public sealed unsafe class VertexArray : GlBufferObjectBase
|
||||
{
|
||||
|
||||
internal VertexArray(int n, glRender binding)
|
||||
internal VertexArray(
|
||||
int n,
|
||||
glRender binding
|
||||
)
|
||||
: base(binding)
|
||||
{
|
||||
_bufferHandle = GL.GenVertexArrays(n);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public sealed override void Bind(int index)
|
||||
public sealed override void Bind(
|
||||
int index
|
||||
)
|
||||
{
|
||||
GL.BindVertexArray(_bufferHandle[index]);
|
||||
}
|
||||
@@ -60,13 +65,17 @@ namespace StgSharp.Graphics.OpenGL
|
||||
int vertexLength,
|
||||
TypeCode dataType,
|
||||
bool isNomalized,
|
||||
uint stride,
|
||||
int pointer)
|
||||
int stride,
|
||||
int pointer
|
||||
)
|
||||
{
|
||||
GL.SetVertexAttribute(attributeIndex, vertexLength, dataType, isNomalized, stride, pointer);
|
||||
GL.SetVertexAttribute(attributeIndex, vertexLength, dataType, isNomalized, stride,
|
||||
pointer);
|
||||
}
|
||||
|
||||
protected sealed override void Dispose(bool disposing)
|
||||
protected sealed override void Dispose(
|
||||
bool disposing
|
||||
)
|
||||
{
|
||||
if (disposing) {
|
||||
GL.DeleteVertexArrays(_bufferHandle);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="Shader"
|
||||
// Project: StgSharp
|
||||
@@ -56,7 +56,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
protected sealed override Shader CreateShaderSegment(ShaderType type, int count)
|
||||
protected sealed override Shader CreateShaderSegment(
|
||||
ShaderType type,
|
||||
int count
|
||||
)
|
||||
{
|
||||
return new Shader(GL.CreateShaderSet(count, type), type, this);
|
||||
}
|
||||
@@ -70,7 +73,11 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal readonly GlHandle[] handle;
|
||||
public readonly ShaderType type;
|
||||
|
||||
internal unsafe Shader(GlHandle[] handle, ShaderType usage, glRender stream)
|
||||
internal unsafe Shader(
|
||||
GlHandle[] handle,
|
||||
ShaderType usage,
|
||||
glRender stream
|
||||
)
|
||||
{
|
||||
this.handle = handle;
|
||||
GL = stream.GL;
|
||||
@@ -89,12 +96,18 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// Index of shader code in current shader code set.
|
||||
/// </param>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void AttachTo(int index, [NotNull]ShaderProgram target)
|
||||
public void AttachTo(
|
||||
int index,
|
||||
[NotNull]ShaderProgram target
|
||||
)
|
||||
{
|
||||
GL.AttachShader(target.handle, handle[index]);
|
||||
}
|
||||
|
||||
public void CheckStatus(int index, ShaderStatus status)
|
||||
public void CheckStatus(
|
||||
int index,
|
||||
ShaderStatus status
|
||||
)
|
||||
{
|
||||
string log = GL.GetShaderStatus(this, index, (int)status);
|
||||
if (!string.IsNullOrEmpty(log)) {
|
||||
@@ -103,7 +116,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void Compile(int index, ReadOnlySpan<byte> codeU8Stream)
|
||||
public unsafe void Compile(
|
||||
int index,
|
||||
ReadOnlySpan<byte> codeU8Stream
|
||||
)
|
||||
{
|
||||
GL.LoadShaderSource(handle[index], codeU8Stream);
|
||||
GL.CompileShader(handle[index]);
|
||||
@@ -111,7 +127,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void Compile(int index, byte[] codeStream)
|
||||
public unsafe void Compile(
|
||||
int index,
|
||||
byte[] codeStream
|
||||
)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(codeStream);
|
||||
GL.LoadShaderSource(handle[index], codeStream);
|
||||
@@ -120,7 +139,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void Compile(int index, string codeStream)
|
||||
public unsafe void Compile(
|
||||
int index,
|
||||
string codeStream
|
||||
)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(codeStream);
|
||||
GL.LoadShaderSource(handle[index], codeStream.AsSpan());
|
||||
@@ -128,12 +150,16 @@ namespace StgSharp.Graphics.OpenGL
|
||||
CheckStatus(index, ShaderStatus.CompileStatus);
|
||||
}
|
||||
|
||||
public void FromBytes(byte[] stream)
|
||||
public void FromBytes(
|
||||
byte[] stream
|
||||
)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public static byte[] FromCodeFile(string fileRoute)
|
||||
public static byte[] FromCodeFile(
|
||||
string fileRoute
|
||||
)
|
||||
{
|
||||
string str = File.ReadAllText(fileRoute);
|
||||
if (string.IsNullOrEmpty(str)) {
|
||||
@@ -147,7 +173,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
return Array.Empty<byte>();
|
||||
}
|
||||
|
||||
public byte[] GetBytes(out int length)
|
||||
public byte[] GetBytes(
|
||||
out int length
|
||||
)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
@@ -175,7 +203,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// <summary>
|
||||
/// CustomizeInit a program with no shader attached.
|
||||
/// </summary>
|
||||
internal unsafe ShaderProgram(glRender binding)
|
||||
internal unsafe ShaderProgram(
|
||||
glRender binding
|
||||
)
|
||||
{
|
||||
GL = binding.GL;
|
||||
handle = GL.CreateProgram();
|
||||
@@ -191,7 +221,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
///
|
||||
/// </returns>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe Uniform<T> GetUniform<T>(string name) where T: unmanaged
|
||||
public unsafe Uniform<T> GetUniform<T>(
|
||||
string name
|
||||
) where T : unmanaged
|
||||
{
|
||||
return new Uniform<T>(GL.GetUniformLocation(this.handle, name));
|
||||
}
|
||||
@@ -205,7 +237,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// <returns>
|
||||
///
|
||||
/// </returns>
|
||||
public unsafe Uniform<T, U> GetUniform<T, U>(string name) where T: unmanaged where U: struct
|
||||
public unsafe Uniform<T, U> GetUniform<T, U>(
|
||||
string name
|
||||
) where T : unmanaged where U : struct
|
||||
{
|
||||
return new Uniform<T, U>(GL.GetUniformLocation(this.handle, name));
|
||||
}
|
||||
@@ -219,8 +253,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// <returns>
|
||||
///
|
||||
/// </returns>
|
||||
public unsafe Uniform<T, U, V> GetUniform<T, U, V>(string name) where T: unmanaged where U: struct
|
||||
where V: struct
|
||||
public unsafe Uniform<T, U, V> GetUniform<T, U, V>(
|
||||
string name
|
||||
) where T : unmanaged where U : struct where V : struct
|
||||
{
|
||||
return new Uniform<T, U, V>(GL.GetUniformLocation(this.handle, name));
|
||||
}
|
||||
@@ -234,9 +269,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// <returns>
|
||||
///
|
||||
/// </returns>
|
||||
public unsafe Uniform<T, U, V, W> GetUniform<T, U, V, W>(string name) where T: unmanaged where U: struct
|
||||
where V: struct
|
||||
where W: struct
|
||||
public unsafe Uniform<T, U, V, W> GetUniform<T, U, V, W>(
|
||||
string name
|
||||
) where T : unmanaged where U : struct where V : struct where W : struct
|
||||
{
|
||||
return new Uniform<T, U, V, W>(GL.GetUniformLocation(this.handle, name));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="Uniform"
|
||||
// Project: StgSharp
|
||||
@@ -41,17 +41,21 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
}
|
||||
|
||||
public sealed class Uniform<T> : Uniform where T: unmanaged
|
||||
public sealed class Uniform<T> : Uniform where T : unmanaged
|
||||
{
|
||||
|
||||
internal Uniform() { }
|
||||
|
||||
internal unsafe Uniform(GlHandle id)
|
||||
internal unsafe Uniform(
|
||||
GlHandle id
|
||||
)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
internal static Uniform<T> FromHandle(GlHandle handle)
|
||||
internal static Uniform<T> FromHandle(
|
||||
GlHandle handle
|
||||
)
|
||||
{
|
||||
return new Uniform<T>
|
||||
{
|
||||
@@ -61,17 +65,21 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
}
|
||||
|
||||
public sealed class Uniform<T, U> : Uniform where T: unmanaged where U: struct
|
||||
public sealed class Uniform<T, U> : Uniform where T : unmanaged where U : struct
|
||||
{
|
||||
|
||||
internal Uniform() { }
|
||||
|
||||
internal unsafe Uniform(GlHandle id)
|
||||
internal unsafe Uniform(
|
||||
GlHandle id
|
||||
)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
internal static Uniform<T, U> FromHandle(GlHandle handle)
|
||||
internal static Uniform<T, U> FromHandle(
|
||||
GlHandle handle
|
||||
)
|
||||
{
|
||||
return new Uniform<T, U>
|
||||
{
|
||||
@@ -81,17 +89,22 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
}
|
||||
|
||||
public sealed class Uniform<T, U, V> : Uniform where T: unmanaged where U: struct where V: struct
|
||||
public sealed class Uniform<T, U, V> : Uniform where T : unmanaged where U : struct
|
||||
where V : struct
|
||||
{
|
||||
|
||||
internal Uniform() { }
|
||||
|
||||
internal unsafe Uniform(GlHandle id)
|
||||
internal unsafe Uniform(
|
||||
GlHandle id
|
||||
)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
internal static Uniform<T, U, V> FromHandle(GlHandle handle)
|
||||
internal static Uniform<T, U, V> FromHandle(
|
||||
GlHandle handle
|
||||
)
|
||||
{
|
||||
return new Uniform<T, U, V>
|
||||
{
|
||||
@@ -101,17 +114,23 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
}
|
||||
|
||||
public sealed class Uniform<T, U, V, W> : Uniform where T: unmanaged where U: struct where V: struct where W: struct
|
||||
public sealed class Uniform<T, U, V, W> : Uniform where T : unmanaged where U : struct
|
||||
where V : struct
|
||||
where W : struct
|
||||
{
|
||||
|
||||
internal Uniform() { }
|
||||
|
||||
internal unsafe Uniform(GlHandle id)
|
||||
internal unsafe Uniform(
|
||||
GlHandle id
|
||||
)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
internal static Uniform<T, U, V, W> FromHandle(GlHandle handle)
|
||||
internal static Uniform<T, U, V, W> FromHandle(
|
||||
GlHandle handle
|
||||
)
|
||||
{
|
||||
return new Uniform<T, U, V, W>
|
||||
{
|
||||
@@ -125,46 +144,67 @@ namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull] Uniform<Matrix44> uniform, Matrix44 mat)
|
||||
public void SetUniformValue(
|
||||
[NotNull] Uniform<Matrix44> uniform,
|
||||
Matrix44 mat
|
||||
)
|
||||
{
|
||||
Matrix44 temp = mat;
|
||||
Context.glUniformMatrix4fv(uniform.id.SignedValue, 1, false, (float*)&temp);
|
||||
Context.glUniformMatrix4fv(uniform.id.SignedValue, 1, (byte)0, (float*)&mat);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull]Uniform<float, float, float, float> uniform, Vec4 vec)
|
||||
public void SetUniformValue(
|
||||
[NotNull]Uniform<float, float, float, float> uniform,
|
||||
Vec4 vec
|
||||
)
|
||||
{
|
||||
Vec4 temp = vec;
|
||||
Context.glUniform1fv(uniform.id.SignedValue, 4, &temp.reg);
|
||||
Context.glUniform1fv(uniform.id.SignedValue, 4, (float*)&vec);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull]Uniform<Vec4> uniform, Vec4 vec)
|
||||
public void SetUniformValue(
|
||||
[NotNull]Uniform<Vec4> uniform,
|
||||
Vec4 vec
|
||||
)
|
||||
{
|
||||
Vec4 temp = vec;
|
||||
Context.glUniform1fv(uniform.id.SignedValue, 4, &temp.reg);
|
||||
Context.glUniform1fv(uniform.id.SignedValue, 4, (float*)&vec);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull]Uniform<float> uniform, float v0)
|
||||
public void SetUniformValue(
|
||||
[NotNull]Uniform<float> uniform,
|
||||
float v0
|
||||
)
|
||||
{
|
||||
Context.glUniform1f(uniform.id.SignedValue, v0);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull]Uniform<int> uniform, int i0)
|
||||
public void SetUniformValue(
|
||||
[NotNull]Uniform<int> uniform,
|
||||
int i0
|
||||
)
|
||||
{
|
||||
Context.glUniform1i(uniform.id.SignedValue, i0);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull] Uniform<float, float> uniform, float v0, float v1)
|
||||
public void SetUniformValue(
|
||||
[NotNull] Uniform<float, float> uniform,
|
||||
float v0,
|
||||
float v1
|
||||
)
|
||||
{
|
||||
Context.glUniform2f(uniform.id.SignedValue, v0, v1);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetUniformValue([NotNull] Uniform<float, float, float> uniform, float v0, float v1, float v2)
|
||||
public void SetUniformValue(
|
||||
[NotNull] Uniform<float, float, float> uniform,
|
||||
float v0,
|
||||
float v1,
|
||||
float v2
|
||||
)
|
||||
{
|
||||
Context.glUniform3f(uniform.id.SignedValue, v0, v1, v2);
|
||||
}
|
||||
@@ -175,7 +215,8 @@ namespace StgSharp.Graphics.OpenGL
|
||||
float v0,
|
||||
float v1,
|
||||
float v2,
|
||||
float v3)
|
||||
float v3
|
||||
)
|
||||
{
|
||||
Context.glUniform4f(uniform.id.SignedValue, v0, v1, v2, v3);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glApiManager"
|
||||
// Project: StgSharp
|
||||
@@ -54,28 +54,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
private static string glExtensionList;
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
/// <summary>
|
||||
/// Get the function pointer of given OpenGL api _label
|
||||
/// </summary>
|
||||
/// <param _label="name">
|
||||
/// ContextName of the OpenGL api
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The funtion pointer of the api in stream of <see cref="IntPtr" />
|
||||
/// </returns>
|
||||
public static IntPtr LoadGLfunc(string name)
|
||||
{
|
||||
IntPtr ret = GraphicFramework.glfwGetProcAddress(Encoding.UTF8.GetBytes(name));
|
||||
if (ret == default)
|
||||
{
|
||||
DefaultLog.InternalAppendLog(
|
||||
$"Cannot load OpenGL api called {name}, this api may not exist or supported.");
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Load all supported OpenGL APIs and bind them to given <see cref="ViewPort" />.
|
||||
@@ -83,10 +61,12 @@ namespace StgSharp.Graphics.OpenGL
|
||||
/// <param _label="contextHandle">
|
||||
/// The handle to current OpenGL viewPortDisplay
|
||||
/// </param>
|
||||
public static unsafe void LoadOpenGLApiTo(IntPtr contextHandle)
|
||||
public static unsafe void LoadOpenGLApiTo(
|
||||
IntPtr contextHandle
|
||||
)
|
||||
{
|
||||
OpenglContext* context = (OpenglContext*)contextHandle;
|
||||
if ((IntPtr)context->glGetString != IntPtr.Zero) {
|
||||
if (context->glGetString != null) {
|
||||
return;
|
||||
}
|
||||
delegate*<ReadOnlySpan<byte>, IntPtr> loader = &GraphicFramework.glfwGetProcAddress;
|
||||
@@ -96,15 +76,16 @@ namespace StgSharp.Graphics.OpenGL
|
||||
#if DEBUG
|
||||
Console.WriteLine("Cannot load GL.");
|
||||
#endif
|
||||
throw new Exception("Cannot load gl");
|
||||
throw new NotSupportedException("Cannot load gl");
|
||||
}
|
||||
context->glGetString = (delegate*<uint, IntPtr>)proc;
|
||||
context->glGetString = (delegate*<uint, byte*>)proc;
|
||||
|
||||
string coreVersion;
|
||||
if (context->glGetString(glVersion) == IntPtr.Zero) {
|
||||
if (context->glGetString(glVersion) == null) {
|
||||
DefaultLog.InternalWriteLog("Failed to call glGetString", LogType.Error);
|
||||
}
|
||||
coreVersion = Marshal.PtrToStringAnsi(context->glGetString(glVersion)) ?? string.Empty;
|
||||
coreVersion = Marshal.PtrToStringAnsi((nint)context->glGetString(glVersion)) ??
|
||||
string.Empty;
|
||||
|
||||
foreach (string branch in glBranch)
|
||||
{
|
||||
@@ -118,25 +99,25 @@ namespace StgSharp.Graphics.OpenGL
|
||||
CheckCoreVersion(majorVersion, minorVersion);
|
||||
|
||||
|
||||
if (LoadGLcore10(context, loader) &&
|
||||
LoadGLcore11(context, loader) &&
|
||||
LoadGLcore12(context, loader) &&
|
||||
LoadGLcore13(context, loader) &&
|
||||
LoadGLcore14(context, loader) &&
|
||||
LoadGLcore15(context, loader) &&
|
||||
LoadGLcore20(context, loader) &&
|
||||
LoadGLcore21(context, loader) &&
|
||||
LoadGLcore30(context, loader) &&
|
||||
LoadGLcore31(context, loader) &&
|
||||
LoadGLcore32(context, loader) &&
|
||||
LoadGLcore33(context, loader) &&
|
||||
LoadGLcore40(context, loader) &&
|
||||
LoadGLcore41(context, loader) &&
|
||||
LoadGLcore42(context, loader) &&
|
||||
LoadGLcore43(context, loader) &&
|
||||
LoadGLcore44(context, loader) &&
|
||||
LoadGLcore45(context, loader) &&
|
||||
LoadGLcore46(context, loader)) { }
|
||||
if (LoadGLcore10((glContextShadow*)context, loader) &&
|
||||
LoadGLcore11((glContextShadow*)context, loader) &&
|
||||
LoadGLcore12((glContextShadow*)context, loader) &&
|
||||
LoadGLcore13((glContextShadow*)context, loader) &&
|
||||
LoadGLcore14((glContextShadow*)context, loader) &&
|
||||
LoadGLcore15((glContextShadow*)context, loader) &&
|
||||
LoadGLcore20((glContextShadow*)context, loader) &&
|
||||
LoadGLcore21((glContextShadow*)context, loader) &&
|
||||
LoadGLcore30((glContextShadow*)context, loader) &&
|
||||
LoadGLcore31((glContextShadow*)context, loader) &&
|
||||
LoadGLcore32((glContextShadow*)context, loader) &&
|
||||
LoadGLcore33((glContextShadow*)context, loader) &&
|
||||
LoadGLcore40((glContextShadow*)context, loader) &&
|
||||
LoadGLcore41((glContextShadow*)context, loader) &&
|
||||
LoadGLcore42((glContextShadow*)context, loader) &&
|
||||
LoadGLcore43((glContextShadow*)context, loader) &&
|
||||
LoadGLcore44((glContextShadow*)context, loader) &&
|
||||
LoadGLcore45((glContextShadow*)context, loader) &&
|
||||
LoadGLcore46((glContextShadow*)context, loader)) { }
|
||||
|
||||
uint code = context->glGetError();
|
||||
if (code != 0)
|
||||
@@ -3267,7 +3248,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
#endregion checkGLextensions
|
||||
}
|
||||
|
||||
internal static void CheckCoreVersion(int majorVersion, int minorVersion)
|
||||
internal static void CheckCoreVersion(
|
||||
int majorVersion,
|
||||
int minorVersion
|
||||
)
|
||||
{
|
||||
if (majorVersion < 3) {
|
||||
throw new InvalidOperationException(
|
||||
@@ -3433,32 +3417,14 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe string GetExtensions(this OpenglContext context)
|
||||
internal static unsafe string GetExtensions(
|
||||
this OpenglContext context
|
||||
)
|
||||
{
|
||||
if (context.glGetString == null) {
|
||||
return string.Empty;
|
||||
}
|
||||
return Marshal.PtrToStringAnsi(context.glGetString(glExtension))!;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static T internalLoadAPI<T>(IntPtr ptr) where T: Delegate
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ptr == IntPtr.Zero) {
|
||||
return null;
|
||||
}
|
||||
T func = Marshal.GetDelegateForFunctionPointer<T>(ptr);
|
||||
return func;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DefaultLog.InternalWriteLog(
|
||||
$"{$"Failed to convert the api {typeof(T).Name}.\n"}{ex.Message}",
|
||||
LogType.Warning);
|
||||
return default;
|
||||
}
|
||||
return Marshal.PtrToStringAnsi((nint)context.glGetString(glExtension))!;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,30 @@
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-29 08:55:37Z
|
||||
// Aggregated GL3+ commands
|
||||
// </auto-generated>
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glContext"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
@@ -11,28 +34,60 @@ namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
|
||||
internal unsafe delegate*<uint, uint, void> glActiveShaderProgram;
|
||||
internal unsafe delegate*<uint, void> glActiveTexture;
|
||||
internal unsafe delegate*<uint, uint, void> glAttachShader;
|
||||
internal unsafe delegate*<uint, uint, void> glBeginConditionalRender;
|
||||
internal unsafe delegate*<uint, uint, void> glBeginQuery;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glBeginQueryIndexed;
|
||||
internal unsafe delegate*<uint, void> glBeginTransformFeedback;
|
||||
internal unsafe delegate*<uint, uint, byte*, void> glBindAttribLocation;
|
||||
internal unsafe delegate*<uint, uint, void> glBindBuffer;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glBindBufferBase;
|
||||
internal unsafe delegate*<uint, uint, uint, nint, nuint, void> glBindBufferRange;
|
||||
internal unsafe delegate*<uint, uint, int, uint*, void> glBindBuffersBase;
|
||||
internal unsafe delegate*<uint, uint, int, uint*, nint*, nuint*, void> glBindBuffersRange;
|
||||
internal unsafe delegate*<uint, uint, byte*, void> glBindFragDataLocation;
|
||||
internal unsafe delegate*<uint, uint, uint, byte*, void> glBindFragDataLocationIndexed;
|
||||
internal unsafe delegate*<uint, uint, void> glBindFramebuffer;
|
||||
internal unsafe delegate*<uint, uint, int, byte, int, uint, uint, void> glBindImageTexture;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glBindImageTextures;
|
||||
internal unsafe delegate*<uint, void> glBindProgramPipeline;
|
||||
internal unsafe delegate*<uint, uint, void> glBindRenderbuffer;
|
||||
internal unsafe delegate*<uint, uint, void> glBindSampler;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glBindSamplers;
|
||||
internal unsafe delegate*<uint, uint, void> glBindTexture;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glBindTextures;
|
||||
internal unsafe delegate*<uint, uint, void> glBindTextureUnit;
|
||||
internal unsafe delegate*<uint, uint, void> glBindTransformFeedback;
|
||||
internal unsafe delegate*<uint, void> glBindVertexArray;
|
||||
internal unsafe delegate*<uint, uint, nint, int, void> glBindVertexBuffer;
|
||||
internal unsafe delegate*<uint, int, uint*, nint*, int*, void> glBindVertexBuffers;
|
||||
internal unsafe delegate*<float, float, float, float, void> glBlendColor;
|
||||
internal unsafe delegate*<uint, void> glBlendEquation;
|
||||
internal unsafe delegate*<uint, uint, void> glBlendEquationi;
|
||||
internal unsafe delegate*<uint, uint, void> glBlendEquationSeparate;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glBlendEquationSeparatei;
|
||||
internal unsafe delegate*<uint, uint, void> glBlendFunc;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glBlendFunci;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, void> glBlendFuncSeparate;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, uint, void> glBlendFuncSeparatei;
|
||||
internal unsafe delegate*<int, int, int, int, int, int, int, int, uint, uint, void> glBlitFramebuffer;
|
||||
internal unsafe delegate*<uint, uint, int, int, int, int, int, int, int, int, uint, uint, void> glBlitNamedFramebuffer;
|
||||
internal unsafe delegate*<uint, nuint, IntPtr*, uint, void> glBufferData;
|
||||
internal unsafe delegate*<uint, nuint, IntPtr*, uint, void> glBufferStorage;
|
||||
internal unsafe delegate*<uint, nint, nuint, IntPtr*, void> glBufferSubData;
|
||||
internal unsafe delegate*<uint, uint> glCheckFramebufferStatus;
|
||||
internal unsafe delegate*<uint, uint, uint> glCheckNamedFramebufferStatus;
|
||||
internal unsafe delegate*<uint, uint, void> glClampColor;
|
||||
internal unsafe delegate*<uint, void> glClear;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, IntPtr*, void> glClearBufferData;
|
||||
internal unsafe delegate*<uint, int, float, int, void> glClearBufferfi;
|
||||
internal unsafe delegate*<uint, int, float*, void> glClearBufferfv;
|
||||
internal unsafe delegate*<uint, int, int*, void> glClearBufferiv;
|
||||
internal unsafe delegate*<uint, uint, nint, nuint, uint, uint, IntPtr*, void> glClearBufferSubData;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glClearBufferuiv;
|
||||
internal unsafe delegate*<float, float, float, float, void> glClearColor;
|
||||
internal unsafe delegate*<double, void> glClearDepth;
|
||||
internal unsafe delegate*<float, void> glClearDepthf;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, IntPtr*, void> glClearNamedBufferData;
|
||||
internal unsafe delegate*<uint, uint, nint, nuint, uint, uint, IntPtr*, void> glClearNamedBufferSubData;
|
||||
@@ -40,69 +95,165 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, int, float*, void> glClearNamedFramebufferfv;
|
||||
internal unsafe delegate*<uint, uint, int, int*, void> glClearNamedFramebufferiv;
|
||||
internal unsafe delegate*<uint, uint, int, uint*, void> glClearNamedFramebufferuiv;
|
||||
internal unsafe delegate*<int, void> glClearStencil;
|
||||
internal unsafe delegate*<uint, int, uint, uint, IntPtr*, void> glClearTexImage;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, uint, uint, IntPtr*, void> glClearTexSubImage;
|
||||
internal unsafe delegate*<glSync, uint, IntPtr, uint> glClientWaitSync;
|
||||
internal unsafe delegate*<uint, uint, void> glClipControl;
|
||||
internal unsafe delegate*<byte, byte, byte, byte, void> glColorMask;
|
||||
internal unsafe delegate*<uint, byte, byte, byte, byte, void> glColorMaski;
|
||||
internal unsafe delegate*<uint, void> glCompileShader;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, IntPtr*, void> glCompressedTexImage1D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, int, IntPtr*, void> glCompressedTexImage2D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, int, int, IntPtr*, void> glCompressedTexImage3D;
|
||||
internal unsafe delegate*<uint, int, int, int, uint, int, IntPtr*, void> glCompressedTexSubImage1D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, uint, int, IntPtr*, void> glCompressedTexSubImage2D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, uint, int, IntPtr*, void> glCompressedTexSubImage3D;
|
||||
internal unsafe delegate*<uint, int, int, int, uint, int, IntPtr*, void> glCompressedTextureSubImage1D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, uint, int, IntPtr*, void> glCompressedTextureSubImage2D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, uint, int, IntPtr*, void> glCompressedTextureSubImage3D;
|
||||
internal unsafe delegate*<uint, uint, nint, nint, nuint, void> glCopyBufferSubData;
|
||||
internal unsafe delegate*<uint, uint, int, int, int, int, uint, uint, int, int, int, int, int, int, int, void> glCopyImageSubData;
|
||||
internal unsafe delegate*<uint, uint, nint, nint, nuint, void> glCopyNamedBufferSubData;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, int, void> glCopyTexImage1D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, int, int, void> glCopyTexImage2D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, void> glCopyTexSubImage1D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, void> glCopyTexSubImage2D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, int, void> glCopyTexSubImage3D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, void> glCopyTextureSubImage1D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, void> glCopyTextureSubImage2D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, int, void> glCopyTextureSubImage3D;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateBuffers;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateFramebuffers;
|
||||
internal unsafe delegate*<uint> glCreateProgram;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateProgramPipelines;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glCreateQueries;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateRenderbuffers;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateSamplers;
|
||||
internal unsafe delegate*<uint, uint> glCreateShader;
|
||||
internal unsafe delegate*<uint, int, byte*, uint> glCreateShaderProgramv;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glCreateTextures;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateTransformFeedbacks;
|
||||
internal unsafe delegate*<int, uint*, void> glCreateVertexArrays;
|
||||
internal unsafe delegate*<uint, void> glCullFace;
|
||||
internal unsafe delegate*<IntPtr, IntPtr*, void> glDebugMessageCallback;
|
||||
internal unsafe delegate*<uint, uint, uint, int, uint*, byte, void> glDebugMessageControl;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, int, byte*, void> glDebugMessageInsert;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteBuffers;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteFramebuffers;
|
||||
internal unsafe delegate*<uint, void> glDeleteProgram;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteProgramPipelines;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteQueries;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteRenderbuffers;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteSamplers;
|
||||
internal unsafe delegate*<uint, void> glDeleteShader;
|
||||
internal unsafe delegate*<glSync, void> glDeleteSync;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteTextures;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteTransformFeedbacks;
|
||||
internal unsafe delegate*<int, uint*, void> glDeleteVertexArrays;
|
||||
internal unsafe delegate*<uint, void> glDepthFunc;
|
||||
internal unsafe delegate*<byte, void> glDepthMask;
|
||||
internal unsafe delegate*<double, double, void> glDepthRange;
|
||||
internal unsafe delegate*<uint, int, double*, void> glDepthRangeArrayv;
|
||||
internal unsafe delegate*<float, float, void> glDepthRangef;
|
||||
internal unsafe delegate*<uint, double, double, void> glDepthRangeIndexed;
|
||||
internal unsafe delegate*<uint, uint, void> glDetachShader;
|
||||
internal unsafe delegate*<uint, void> glDisable;
|
||||
internal unsafe delegate*<uint, uint, void> glDisablei;
|
||||
internal unsafe delegate*<uint, uint, void> glDisableVertexArrayAttrib;
|
||||
internal unsafe delegate*<uint, void> glDisableVertexAttribArray;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glDispatchCompute;
|
||||
internal unsafe delegate*<nint, void> glDispatchComputeIndirect;
|
||||
internal unsafe delegate*<uint, int, int, void> glDrawArrays;
|
||||
internal unsafe delegate*<uint, IntPtr*, void> glDrawArraysIndirect;
|
||||
internal unsafe delegate*<uint, int, int, int, void> glDrawArraysInstanced;
|
||||
internal unsafe delegate*<uint, int, int, int, uint, void> glDrawArraysInstancedBaseInstance;
|
||||
internal unsafe delegate*<uint, void> glDrawBuffer;
|
||||
internal unsafe delegate*<int, uint*, void> glDrawBuffers;
|
||||
internal unsafe delegate*<uint, int, uint, IntPtr*, void> glDrawElements;
|
||||
internal unsafe delegate*<uint, int, uint, IntPtr*, int, void> glDrawElementsBaseVertex;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glDrawElementsIndirect;
|
||||
internal unsafe delegate*<uint, int, uint, IntPtr*, int, void> glDrawElementsInstanced;
|
||||
internal unsafe delegate*<uint, int, uint, IntPtr*, int, uint, void> glDrawElementsInstancedBaseInstance;
|
||||
internal unsafe delegate*<uint, int, uint, IntPtr*, int, int, void> glDrawElementsInstancedBaseVertex;
|
||||
internal unsafe delegate*<uint, int, uint, IntPtr*, int, int, uint, void> glDrawElementsInstancedBaseVertexBaseInstance;
|
||||
internal unsafe delegate*<uint, uint, uint, int, uint, IntPtr*, void> glDrawRangeElements;
|
||||
internal unsafe delegate*<uint, uint, uint, int, uint, IntPtr*, int, void> glDrawRangeElementsBaseVertex;
|
||||
internal unsafe delegate*<uint, uint, void> glDrawTransformFeedback;
|
||||
internal unsafe delegate*<uint, uint, int, void> glDrawTransformFeedbackInstanced;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glDrawTransformFeedbackStream;
|
||||
internal unsafe delegate*<uint, uint, uint, int, void> glDrawTransformFeedbackStreamInstanced;
|
||||
internal unsafe delegate*<uint, void> glEnable;
|
||||
internal unsafe delegate*<uint, uint, void> glEnablei;
|
||||
internal unsafe delegate*<uint, uint, void> glEnableVertexArrayAttrib;
|
||||
internal unsafe delegate*<uint, void> glEnableVertexAttribArray;
|
||||
internal unsafe delegate*<void> glEndConditionalRender;
|
||||
internal unsafe delegate*<uint, void> glEndQuery;
|
||||
internal unsafe delegate*<uint, uint, void> glEndQueryIndexed;
|
||||
internal unsafe delegate*<void> glEndTransformFeedback;
|
||||
internal unsafe delegate*<uint, uint, glSync> glFenceSync;
|
||||
internal unsafe delegate*<void> glFinish;
|
||||
internal unsafe delegate*<void> glFlush;
|
||||
internal unsafe delegate*<uint, nint, nuint, void> glFlushMappedBufferRange;
|
||||
internal unsafe delegate*<uint, nint, nuint, void> glFlushMappedNamedBufferRange;
|
||||
internal unsafe delegate*<uint, uint, int, void> glFramebufferParameteri;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, void> glFramebufferRenderbuffer;
|
||||
internal unsafe delegate*<uint, uint, uint, int, void> glFramebufferTexture;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, int, void> glFramebufferTexture1D;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, int, void> glFramebufferTexture2D;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, int, int, void> glFramebufferTexture3D;
|
||||
internal unsafe delegate*<uint, uint, uint, int, int, void> glFramebufferTextureLayer;
|
||||
internal unsafe delegate*<uint, void> glFrontFace;
|
||||
internal unsafe delegate*<int, uint*, void> glGenBuffers;
|
||||
internal unsafe delegate*<uint, void> glGenerateMipmap;
|
||||
internal unsafe delegate*<uint, void> glGenerateTextureMipmap;
|
||||
internal unsafe delegate*<int, uint*, void> glGenFramebuffers;
|
||||
internal unsafe delegate*<int, uint*, void> glGenProgramPipelines;
|
||||
internal unsafe delegate*<int, uint*, void> glGenQueries;
|
||||
internal unsafe delegate*<int, uint*, void> glGenRenderbuffers;
|
||||
internal unsafe delegate*<int, uint*, void> glGenSamplers;
|
||||
internal unsafe delegate*<int, uint*, void> glGenTextures;
|
||||
internal unsafe delegate*<int, uint*, void> glGenTransformFeedbacks;
|
||||
internal unsafe delegate*<int, uint*, void> glGenVertexArrays;
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetActiveAtomicCounterBufferiv;
|
||||
internal unsafe delegate*<uint, uint, int, int*, int*, uint*, byte*, void> glGetActiveAttrib;
|
||||
internal unsafe delegate*<uint, uint, uint, int, int*, byte*, void> glGetActiveSubroutineName;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, int*, void> glGetActiveSubroutineUniformiv;
|
||||
internal unsafe delegate*<uint, uint, uint, int, int*, byte*, void> glGetActiveSubroutineUniformName;
|
||||
internal unsafe delegate*<uint, uint, int, int*, int*, uint*, byte*, void> glGetActiveUniform;
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetActiveUniformBlockiv;
|
||||
internal unsafe delegate*<uint, uint, int, int*, byte*, void> glGetActiveUniformBlockName;
|
||||
internal unsafe delegate*<uint, uint, int, int*, byte*, void> glGetActiveUniformName;
|
||||
internal unsafe delegate*<uint, int, uint*, uint, int*, void> glGetActiveUniformsiv;
|
||||
internal unsafe delegate*<uint, int, int*, uint*, void> glGetAttachedShaders;
|
||||
internal unsafe delegate*<uint, byte*, int> glGetAttribLocation;
|
||||
internal unsafe delegate*<uint, uint, byte*, void> glGetBooleani_v;
|
||||
internal unsafe delegate*<uint, byte*, void> glGetBooleanv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetBufferParameteri64v;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetBufferParameteriv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetBufferPointerv;
|
||||
internal unsafe delegate*<uint, nint, nuint, IntPtr*, void> glGetBufferSubData;
|
||||
internal unsafe delegate*<uint, int, IntPtr*, void> glGetCompressedTexImage;
|
||||
internal unsafe delegate*<uint, int, int, IntPtr*, void> glGetCompressedTextureImage;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, int, IntPtr*, void> glGetCompressedTextureSubImage;
|
||||
internal unsafe delegate*<uint, int, uint*, uint*, uint*, uint*, int*, byte*, uint> glGetDebugMessageLog;
|
||||
internal unsafe delegate*<uint, uint, double*, void> glGetDoublei_v;
|
||||
internal unsafe delegate*<uint, double*, void> glGetDoublev;
|
||||
internal unsafe delegate*<uint> glGetError;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glGetFloati_v;
|
||||
internal unsafe delegate*<uint, float*, void> glGetFloatv;
|
||||
internal unsafe delegate*<uint, byte*, int> glGetFragDataIndex;
|
||||
internal unsafe delegate*<uint, byte*, int> glGetFragDataLocation;
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetFramebufferAttachmentParameteriv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetFramebufferParameteriv;
|
||||
internal unsafe delegate*<uint> glGetGraphicsResetStatus;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetInteger64i_v;
|
||||
internal unsafe delegate*<uint, IntPtr*, void> glGetInteger64v;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetIntegeri_v;
|
||||
internal unsafe delegate*<uint, int*, void> glGetIntegerv;
|
||||
internal unsafe delegate*<uint, uint, uint, int, IntPtr*, void> glGetInternalformati64v;
|
||||
internal unsafe delegate*<uint, uint, uint, int, int*, void> glGetInternalformativ;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glGetMultisamplefv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetNamedBufferParameteri64v;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetNamedBufferParameteriv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetNamedBufferPointerv;
|
||||
@@ -110,19 +261,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetNamedFramebufferAttachmentParameteriv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetNamedFramebufferParameteriv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetNamedRenderbufferParameteriv;
|
||||
internal unsafe delegate*<uint, uint, uint, int, IntPtr*, void> glGetnColorTable;
|
||||
internal unsafe delegate*<uint, int, int, IntPtr*, void> glGetnCompressedTexImage;
|
||||
internal unsafe delegate*<uint, uint, uint, int, IntPtr*, void> glGetnConvolutionFilter;
|
||||
internal unsafe delegate*<uint, byte, uint, uint, int, IntPtr*, void> glGetnHistogram;
|
||||
internal unsafe delegate*<uint, uint, int, double*, void> glGetnMapdv;
|
||||
internal unsafe delegate*<uint, uint, int, float*, void> glGetnMapfv;
|
||||
internal unsafe delegate*<uint, uint, int, int*, void> glGetnMapiv;
|
||||
internal unsafe delegate*<uint, byte, uint, uint, int, IntPtr*, void> glGetnMinmax;
|
||||
internal unsafe delegate*<uint, int, float*, void> glGetnPixelMapfv;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glGetnPixelMapuiv;
|
||||
internal unsafe delegate*<uint, int, ushort*, void> glGetnPixelMapusv;
|
||||
internal unsafe delegate*<int, byte*, void> glGetnPolygonStipple;
|
||||
internal unsafe delegate*<uint, uint, uint, int, IntPtr*, int, IntPtr*, IntPtr*, void> glGetnSeparableFilter;
|
||||
internal unsafe delegate*<uint, int, uint, uint, int, IntPtr*, void> glGetnTexImage;
|
||||
internal unsafe delegate*<uint, int, int, double*, void> glGetnUniformdv;
|
||||
internal unsafe delegate*<uint, int, int, float*, void> glGetnUniformfv;
|
||||
@@ -132,7 +271,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<IntPtr*, int, int*, byte*, void> glGetObjectPtrLabel;
|
||||
internal unsafe delegate*<uint, IntPtr*, void> glGetPointerv;
|
||||
internal unsafe delegate*<uint, int, int*, uint*, IntPtr*, void> glGetProgramBinary;
|
||||
internal unsafe delegate*<uint, int, int*, byte*, void> glGetProgramInfoLog;
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetProgramInterfaceiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetProgramiv;
|
||||
internal unsafe delegate*<uint, int, int*, byte*, void> glGetProgramPipelineInfoLog;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetProgramPipelineiv;
|
||||
internal unsafe delegate*<uint, uint, byte*, uint> glGetProgramResourceIndex;
|
||||
@@ -146,15 +287,32 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, uint, nint, void> glGetQueryBufferObjectui64v;
|
||||
internal unsafe delegate*<uint, uint, uint, nint, void> glGetQueryBufferObjectuiv;
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetQueryIndexediv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetQueryiv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetQueryObjecti64v;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetQueryObjectiv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetQueryObjectui64v;
|
||||
internal unsafe delegate*<uint, uint, uint*, void> glGetQueryObjectuiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetRenderbufferParameteriv;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glGetSamplerParameterfv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetSamplerParameterIiv;
|
||||
internal unsafe delegate*<uint, uint, uint*, void> glGetSamplerParameterIuiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetSamplerParameteriv;
|
||||
internal unsafe delegate*<uint, int, int*, byte*, void> glGetShaderInfoLog;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetShaderiv;
|
||||
internal unsafe delegate*<uint, uint, int*, int*, void> glGetShaderPrecisionFormat;
|
||||
internal unsafe delegate*<uint, int, int*, byte*, void> glGetShaderSource;
|
||||
internal unsafe delegate*<uint, byte*> glGetString;
|
||||
internal unsafe delegate*<uint, uint, byte*> glGetStringi;
|
||||
internal unsafe delegate*<uint, uint, byte*, uint> glGetSubroutineIndex;
|
||||
internal unsafe delegate*<uint, uint, byte*, int> glGetSubroutineUniformLocation;
|
||||
internal unsafe delegate*<glSync, uint, int, int*, int*, void> glGetSynciv;
|
||||
internal unsafe delegate*<uint, int, uint, uint, IntPtr*, void> glGetTexImage;
|
||||
internal unsafe delegate*<uint, int, uint, float*, void> glGetTexLevelParameterfv;
|
||||
internal unsafe delegate*<uint, int, uint, int*, void> glGetTexLevelParameteriv;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glGetTexParameterfv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetTexParameterIiv;
|
||||
internal unsafe delegate*<uint, uint, uint*, void> glGetTexParameterIuiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetTexParameteriv;
|
||||
internal unsafe delegate*<uint, int, uint, uint, int, IntPtr*, void> glGetTextureImage;
|
||||
internal unsafe delegate*<uint, int, uint, float*, void> glGetTextureLevelParameterfv;
|
||||
internal unsafe delegate*<uint, int, uint, int*, void> glGetTextureLevelParameteriv;
|
||||
@@ -166,12 +324,26 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetTransformFeedbacki_v;
|
||||
internal unsafe delegate*<uint, uint, uint, IntPtr*, void> glGetTransformFeedbacki64_v;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetTransformFeedbackiv;
|
||||
internal unsafe delegate*<uint, uint, int, int*, int*, uint*, byte*, void> glGetTransformFeedbackVarying;
|
||||
internal unsafe delegate*<uint, byte*, uint> glGetUniformBlockIndex;
|
||||
internal unsafe delegate*<uint, int, double*, void> glGetUniformdv;
|
||||
internal unsafe delegate*<uint, int, float*, void> glGetUniformfv;
|
||||
internal unsafe delegate*<uint, int, byte*, uint*, void> glGetUniformIndices;
|
||||
internal unsafe delegate*<uint, int, int*, void> glGetUniformiv;
|
||||
internal unsafe delegate*<uint, byte*, int> glGetUniformLocation;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glGetUniformSubroutineuiv;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glGetUniformuiv;
|
||||
internal unsafe delegate*<uint, uint, uint, IntPtr*, void> glGetVertexArrayIndexed64iv;
|
||||
internal unsafe delegate*<uint, uint, uint, int*, void> glGetVertexArrayIndexediv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetVertexArrayiv;
|
||||
internal unsafe delegate*<uint, uint, double*, void> glGetVertexAttribdv;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glGetVertexAttribfv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetVertexAttribIiv;
|
||||
internal unsafe delegate*<uint, uint, uint*, void> glGetVertexAttribIuiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glGetVertexAttribiv;
|
||||
internal unsafe delegate*<uint, uint, double*, void> glGetVertexAttribLdv;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, void> glGetVertexAttribPointerv;
|
||||
internal unsafe delegate*<uint, uint, void> glHint;
|
||||
internal unsafe delegate*<uint, void> glInvalidateBufferData;
|
||||
internal unsafe delegate*<uint, nint, nuint, void> glInvalidateBufferSubData;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glInvalidateFramebuffer;
|
||||
@@ -180,16 +352,35 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, int, uint*, int, int, int, int, void> glInvalidateSubFramebuffer;
|
||||
internal unsafe delegate*<uint, int, void> glInvalidateTexImage;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, void> glInvalidateTexSubImage;
|
||||
internal unsafe delegate*<uint, byte> glIsBuffer;
|
||||
internal unsafe delegate*<uint, byte> glIsEnabled;
|
||||
internal unsafe delegate*<uint, uint, byte> glIsEnabledi;
|
||||
internal unsafe delegate*<uint, byte> glIsFramebuffer;
|
||||
internal unsafe delegate*<uint, byte> glIsProgram;
|
||||
internal unsafe delegate*<uint, byte> glIsProgramPipeline;
|
||||
internal unsafe delegate*<uint, byte> glIsQuery;
|
||||
internal unsafe delegate*<uint, byte> glIsRenderbuffer;
|
||||
internal unsafe delegate*<uint, byte> glIsSampler;
|
||||
internal unsafe delegate*<uint, byte> glIsShader;
|
||||
internal unsafe delegate*<glSync, byte> glIsSync;
|
||||
internal unsafe delegate*<uint, byte> glIsTexture;
|
||||
internal unsafe delegate*<uint, byte> glIsTransformFeedback;
|
||||
internal unsafe delegate*<uint, uint, void> glMapNamedBuffer;
|
||||
internal unsafe delegate*<uint, nint, nuint, uint, void> glMapNamedBufferRange;
|
||||
internal unsafe delegate*<uint, byte> glIsVertexArray;
|
||||
internal unsafe delegate*<float, void> glLineWidth;
|
||||
internal unsafe delegate*<uint, void> glLinkProgram;
|
||||
internal unsafe delegate*<uint, void> glLogicOp;
|
||||
internal unsafe delegate*<uint, uint, void*> glMapBuffer;
|
||||
internal unsafe delegate*<uint, nint, nuint, uint, void*> glMapBufferRange;
|
||||
internal unsafe delegate*<uint, uint, void*> glMapNamedBuffer;
|
||||
internal unsafe delegate*<uint, nint, nuint, uint, void*> glMapNamedBufferRange;
|
||||
internal unsafe delegate*<uint, void> glMemoryBarrier;
|
||||
internal unsafe delegate*<uint, void> glMemoryBarrierByRegion;
|
||||
internal unsafe delegate*<float, void> glMinSampleShading;
|
||||
internal unsafe delegate*<uint, int*, int*, int, void> glMultiDrawArrays;
|
||||
internal unsafe delegate*<uint, IntPtr*, int, int, void> glMultiDrawArraysIndirect;
|
||||
internal unsafe delegate*<uint, IntPtr*, nint, int, int, void> glMultiDrawArraysIndirectCount;
|
||||
internal unsafe delegate*<uint, int*, uint, IntPtr*, int, void> glMultiDrawElements;
|
||||
internal unsafe delegate*<uint, int*, uint, IntPtr*, int, int*, void> glMultiDrawElementsBaseVertex;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, int, int, void> glMultiDrawElementsIndirect;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, nint, int, int, void> glMultiDrawElementsIndirectCount;
|
||||
internal unsafe delegate*<uint, nuint, IntPtr*, uint, void> glNamedBufferData;
|
||||
@@ -209,8 +400,18 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, float*, void> glPatchParameterfv;
|
||||
internal unsafe delegate*<uint, int, void> glPatchParameteri;
|
||||
internal unsafe delegate*<void> glPauseTransformFeedback;
|
||||
internal unsafe delegate*<uint, float, void> glPixelStoref;
|
||||
internal unsafe delegate*<uint, int, void> glPixelStorei;
|
||||
internal unsafe delegate*<uint, float, void> glPointParameterf;
|
||||
internal unsafe delegate*<uint, float*, void> glPointParameterfv;
|
||||
internal unsafe delegate*<uint, int, void> glPointParameteri;
|
||||
internal unsafe delegate*<uint, int*, void> glPointParameteriv;
|
||||
internal unsafe delegate*<float, void> glPointSize;
|
||||
internal unsafe delegate*<uint, uint, void> glPolygonMode;
|
||||
internal unsafe delegate*<float, float, void> glPolygonOffset;
|
||||
internal unsafe delegate*<float, float, float, void> glPolygonOffsetClamp;
|
||||
internal unsafe delegate*<void> glPopDebugGroup;
|
||||
internal unsafe delegate*<uint, void> glPrimitiveRestartIndex;
|
||||
internal unsafe delegate*<uint, uint, IntPtr*, int, void> glProgramBinary;
|
||||
internal unsafe delegate*<uint, uint, int, void> glProgramParameteri;
|
||||
internal unsafe delegate*<uint, int, double, void> glProgramUniform1d;
|
||||
@@ -263,29 +464,59 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, int, int, byte, float*, void> glProgramUniformMatrix4x2fv;
|
||||
internal unsafe delegate*<uint, int, int, byte, double*, void> glProgramUniformMatrix4x3dv;
|
||||
internal unsafe delegate*<uint, int, int, byte, float*, void> glProgramUniformMatrix4x3fv;
|
||||
internal unsafe delegate*<uint, void> glProvokingVertex;
|
||||
internal unsafe delegate*<uint, uint, int, byte*, void> glPushDebugGroup;
|
||||
internal unsafe delegate*<uint, uint, void> glQueryCounter;
|
||||
internal unsafe delegate*<uint, void> glReadBuffer;
|
||||
internal unsafe delegate*<int, int, int, int, uint, uint, int, IntPtr*, void> glReadnPixels;
|
||||
internal unsafe delegate*<int, int, int, int, uint, uint, IntPtr*, void> glReadPixels;
|
||||
internal unsafe delegate*<void> glReleaseShaderCompiler;
|
||||
internal unsafe delegate*<uint, uint, int, int, void> glRenderbufferStorage;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, void> glRenderbufferStorageMultisample;
|
||||
internal unsafe delegate*<void> glResumeTransformFeedback;
|
||||
internal unsafe delegate*<float, byte, void> glSampleCoverage;
|
||||
internal unsafe delegate*<uint, uint, void> glSampleMaski;
|
||||
internal unsafe delegate*<uint, uint, float, void> glSamplerParameterf;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glSamplerParameterfv;
|
||||
internal unsafe delegate*<uint, uint, int, void> glSamplerParameteri;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glSamplerParameterIiv;
|
||||
internal unsafe delegate*<uint, uint, uint*, void> glSamplerParameterIuiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glSamplerParameteriv;
|
||||
internal unsafe delegate*<int, int, int, int, void> glScissor;
|
||||
internal unsafe delegate*<uint, int, int*, void> glScissorArrayv;
|
||||
internal unsafe delegate*<uint, int, int, int, int, void> glScissorIndexed;
|
||||
internal unsafe delegate*<uint, int*, void> glScissorIndexedv;
|
||||
internal unsafe delegate*<int, uint*, uint, IntPtr*, int, void> glShaderBinary;
|
||||
internal unsafe delegate*<uint, int, byte**, int*, void> glShaderSource;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glShaderStorageBlockBinding;
|
||||
internal unsafe delegate*<uint, byte*, uint, uint*, uint*, void> glSpecializeShader;
|
||||
internal unsafe delegate*<uint, int, uint, void> glStencilFunc;
|
||||
internal unsafe delegate*<uint, uint, int, uint, void> glStencilFuncSeparate;
|
||||
internal unsafe delegate*<uint, void> glStencilMask;
|
||||
internal unsafe delegate*<uint, uint, void> glStencilMaskSeparate;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glStencilOp;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, void> glStencilOpSeparate;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glTexBuffer;
|
||||
internal unsafe delegate*<uint, uint, uint, nint, nuint, void> glTexBufferRange;
|
||||
internal unsafe delegate*<uint, int, int, int, int, uint, uint, IntPtr*, void> glTexImage1D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, uint, uint, IntPtr*, void> glTexImage2D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, byte, void> glTexImage2DMultisample;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, uint, uint, IntPtr*, void> glTexImage3D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, byte, void> glTexImage3DMultisample;
|
||||
internal unsafe delegate*<uint, uint, float, void> glTexParameterf;
|
||||
internal unsafe delegate*<uint, uint, float*, void> glTexParameterfv;
|
||||
internal unsafe delegate*<uint, uint, int, void> glTexParameteri;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glTexParameterIiv;
|
||||
internal unsafe delegate*<uint, uint, uint*, void> glTexParameterIuiv;
|
||||
internal unsafe delegate*<uint, uint, int*, void> glTexParameteriv;
|
||||
internal unsafe delegate*<uint, int, uint, int, void> glTexStorage1D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, void> glTexStorage2D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, byte, void> glTexStorage2DMultisample;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, void> glTexStorage3D;
|
||||
internal unsafe delegate*<uint, int, uint, int, int, int, byte, void> glTexStorage3DMultisample;
|
||||
internal unsafe delegate*<uint, int, int, int, uint, uint, IntPtr*, void> glTexSubImage1D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, uint, uint, IntPtr*, void> glTexSubImage2D;
|
||||
internal unsafe delegate*<uint, int, int, int, int, int, int, int, uint, uint, IntPtr*, void> glTexSubImage3D;
|
||||
internal unsafe delegate*<void> glTextureBarrier;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glTextureBuffer;
|
||||
internal unsafe delegate*<uint, uint, uint, nint, nuint, void> glTextureBufferRange;
|
||||
@@ -306,26 +537,64 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, uint, uint, uint, uint, uint, uint, void> glTextureView;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glTransformFeedbackBufferBase;
|
||||
internal unsafe delegate*<uint, uint, uint, nint, nuint, void> glTransformFeedbackBufferRange;
|
||||
internal unsafe delegate*<uint, int, byte*, uint, void> glTransformFeedbackVaryings;
|
||||
internal unsafe delegate*<int, double, void> glUniform1d;
|
||||
internal unsafe delegate*<int, int, double*, void> glUniform1dv;
|
||||
internal unsafe delegate*<int, float, void> glUniform1f;
|
||||
internal unsafe delegate*<int, int, float*, void> glUniform1fv;
|
||||
internal unsafe delegate*<int, int, void> glUniform1i;
|
||||
internal unsafe delegate*<int, int, int*, void> glUniform1iv;
|
||||
internal unsafe delegate*<int, uint, void> glUniform1ui;
|
||||
internal unsafe delegate*<int, int, uint*, void> glUniform1uiv;
|
||||
internal unsafe delegate*<int, double, double, void> glUniform2d;
|
||||
internal unsafe delegate*<int, int, double*, void> glUniform2dv;
|
||||
internal unsafe delegate*<int, float, float, void> glUniform2f;
|
||||
internal unsafe delegate*<int, int, float*, void> glUniform2fv;
|
||||
internal unsafe delegate*<int, int, int, void> glUniform2i;
|
||||
internal unsafe delegate*<int, int, int*, void> glUniform2iv;
|
||||
internal unsafe delegate*<int, uint, uint, void> glUniform2ui;
|
||||
internal unsafe delegate*<int, int, uint*, void> glUniform2uiv;
|
||||
internal unsafe delegate*<int, double, double, double, void> glUniform3d;
|
||||
internal unsafe delegate*<int, int, double*, void> glUniform3dv;
|
||||
internal unsafe delegate*<int, float, float, float, void> glUniform3f;
|
||||
internal unsafe delegate*<int, int, float*, void> glUniform3fv;
|
||||
internal unsafe delegate*<int, int, int, int, void> glUniform3i;
|
||||
internal unsafe delegate*<int, int, int*, void> glUniform3iv;
|
||||
internal unsafe delegate*<int, uint, uint, uint, void> glUniform3ui;
|
||||
internal unsafe delegate*<int, int, uint*, void> glUniform3uiv;
|
||||
internal unsafe delegate*<int, double, double, double, double, void> glUniform4d;
|
||||
internal unsafe delegate*<int, int, double*, void> glUniform4dv;
|
||||
internal unsafe delegate*<int, float, float, float, float, void> glUniform4f;
|
||||
internal unsafe delegate*<int, int, float*, void> glUniform4fv;
|
||||
internal unsafe delegate*<int, int, int, int, int, void> glUniform4i;
|
||||
internal unsafe delegate*<int, int, int*, void> glUniform4iv;
|
||||
internal unsafe delegate*<int, uint, uint, uint, uint, void> glUniform4ui;
|
||||
internal unsafe delegate*<int, int, uint*, void> glUniform4uiv;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glUniformBlockBinding;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix2dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix2fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix2x3dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix2x3fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix2x4dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix2x4fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix3dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix3fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix3x2dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix3x2fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix3x4dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix3x4fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix4dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix4fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix4x2dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix4x2fv;
|
||||
internal unsafe delegate*<int, int, byte, double*, void> glUniformMatrix4x3dv;
|
||||
internal unsafe delegate*<int, int, byte, float*, void> glUniformMatrix4x3fv;
|
||||
internal unsafe delegate*<uint, int, uint*, void> glUniformSubroutinesuiv;
|
||||
internal unsafe delegate*<uint, byte> glUnmapBuffer;
|
||||
internal unsafe delegate*<uint, byte> glUnmapNamedBuffer;
|
||||
internal unsafe delegate*<uint, void> glUseProgram;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glUseProgramStages;
|
||||
internal unsafe delegate*<uint, void> glValidateProgram;
|
||||
internal unsafe delegate*<uint, void> glValidateProgramPipeline;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glVertexArrayAttribBinding;
|
||||
internal unsafe delegate*<uint, uint, int, uint, byte, uint, void> glVertexArrayAttribFormat;
|
||||
@@ -335,10 +604,67 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, void> glVertexArrayElementBuffer;
|
||||
internal unsafe delegate*<uint, uint, uint, nint, int, void> glVertexArrayVertexBuffer;
|
||||
internal unsafe delegate*<uint, uint, int, uint*, nint*, int*, void> glVertexArrayVertexBuffers;
|
||||
internal unsafe delegate*<uint, double, void> glVertexAttrib1d;
|
||||
internal unsafe delegate*<uint, double*, void> glVertexAttrib1dv;
|
||||
internal unsafe delegate*<uint, float, void> glVertexAttrib1f;
|
||||
internal unsafe delegate*<uint, float*, void> glVertexAttrib1fv;
|
||||
internal unsafe delegate*<uint, short, void> glVertexAttrib1s;
|
||||
internal unsafe delegate*<uint, short*, void> glVertexAttrib1sv;
|
||||
internal unsafe delegate*<uint, double, double, void> glVertexAttrib2d;
|
||||
internal unsafe delegate*<uint, double*, void> glVertexAttrib2dv;
|
||||
internal unsafe delegate*<uint, float, float, void> glVertexAttrib2f;
|
||||
internal unsafe delegate*<uint, float*, void> glVertexAttrib2fv;
|
||||
internal unsafe delegate*<uint, short, short, void> glVertexAttrib2s;
|
||||
internal unsafe delegate*<uint, short*, void> glVertexAttrib2sv;
|
||||
internal unsafe delegate*<uint, double, double, double, void> glVertexAttrib3d;
|
||||
internal unsafe delegate*<uint, double*, void> glVertexAttrib3dv;
|
||||
internal unsafe delegate*<uint, float, float, float, void> glVertexAttrib3f;
|
||||
internal unsafe delegate*<uint, float*, void> glVertexAttrib3fv;
|
||||
internal unsafe delegate*<uint, short, short, short, void> glVertexAttrib3s;
|
||||
internal unsafe delegate*<uint, short*, void> glVertexAttrib3sv;
|
||||
internal unsafe delegate*<uint, sbyte*, void> glVertexAttrib4bv;
|
||||
internal unsafe delegate*<uint, double, double, double, double, void> glVertexAttrib4d;
|
||||
internal unsafe delegate*<uint, double*, void> glVertexAttrib4dv;
|
||||
internal unsafe delegate*<uint, float, float, float, float, void> glVertexAttrib4f;
|
||||
internal unsafe delegate*<uint, float*, void> glVertexAttrib4fv;
|
||||
internal unsafe delegate*<uint, int*, void> glVertexAttrib4iv;
|
||||
internal unsafe delegate*<uint, sbyte*, void> glVertexAttrib4Nbv;
|
||||
internal unsafe delegate*<uint, int*, void> glVertexAttrib4Niv;
|
||||
internal unsafe delegate*<uint, short*, void> glVertexAttrib4Nsv;
|
||||
internal unsafe delegate*<uint, byte, byte, byte, byte, void> glVertexAttrib4Nub;
|
||||
internal unsafe delegate*<uint, byte*, void> glVertexAttrib4Nubv;
|
||||
internal unsafe delegate*<uint, uint*, void> glVertexAttrib4Nuiv;
|
||||
internal unsafe delegate*<uint, ushort*, void> glVertexAttrib4Nusv;
|
||||
internal unsafe delegate*<uint, short, short, short, short, void> glVertexAttrib4s;
|
||||
internal unsafe delegate*<uint, short*, void> glVertexAttrib4sv;
|
||||
internal unsafe delegate*<uint, byte*, void> glVertexAttrib4ubv;
|
||||
internal unsafe delegate*<uint, uint*, void> glVertexAttrib4uiv;
|
||||
internal unsafe delegate*<uint, ushort*, void> glVertexAttrib4usv;
|
||||
internal unsafe delegate*<uint, uint, void> glVertexAttribBinding;
|
||||
internal unsafe delegate*<uint, uint, void> glVertexAttribDivisor;
|
||||
internal unsafe delegate*<uint, int, uint, byte, uint, void> glVertexAttribFormat;
|
||||
internal unsafe delegate*<uint, int, void> glVertexAttribI1i;
|
||||
internal unsafe delegate*<uint, int*, void> glVertexAttribI1iv;
|
||||
internal unsafe delegate*<uint, uint, void> glVertexAttribI1ui;
|
||||
internal unsafe delegate*<uint, uint*, void> glVertexAttribI1uiv;
|
||||
internal unsafe delegate*<uint, int, int, void> glVertexAttribI2i;
|
||||
internal unsafe delegate*<uint, int*, void> glVertexAttribI2iv;
|
||||
internal unsafe delegate*<uint, uint, uint, void> glVertexAttribI2ui;
|
||||
internal unsafe delegate*<uint, uint*, void> glVertexAttribI2uiv;
|
||||
internal unsafe delegate*<uint, int, int, int, void> glVertexAttribI3i;
|
||||
internal unsafe delegate*<uint, int*, void> glVertexAttribI3iv;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, void> glVertexAttribI3ui;
|
||||
internal unsafe delegate*<uint, uint*, void> glVertexAttribI3uiv;
|
||||
internal unsafe delegate*<uint, sbyte*, void> glVertexAttribI4bv;
|
||||
internal unsafe delegate*<uint, int, int, int, int, void> glVertexAttribI4i;
|
||||
internal unsafe delegate*<uint, int*, void> glVertexAttribI4iv;
|
||||
internal unsafe delegate*<uint, short*, void> glVertexAttribI4sv;
|
||||
internal unsafe delegate*<uint, byte*, void> glVertexAttribI4ubv;
|
||||
internal unsafe delegate*<uint, uint, uint, uint, uint, void> glVertexAttribI4ui;
|
||||
internal unsafe delegate*<uint, uint*, void> glVertexAttribI4uiv;
|
||||
internal unsafe delegate*<uint, ushort*, void> glVertexAttribI4usv;
|
||||
internal unsafe delegate*<uint, int, uint, uint, void> glVertexAttribIFormat;
|
||||
internal unsafe delegate*<uint, int, uint, int, IntPtr*, void> glVertexAttribIPointer;
|
||||
internal unsafe delegate*<uint, double, void> glVertexAttribL1d;
|
||||
internal unsafe delegate*<uint, double*, void> glVertexAttribL1dv;
|
||||
internal unsafe delegate*<uint, double, double, void> glVertexAttribL2d;
|
||||
@@ -357,10 +683,13 @@ namespace StgSharp.Graphics.OpenGL
|
||||
internal unsafe delegate*<uint, uint, byte, uint*, void> glVertexAttribP3uiv;
|
||||
internal unsafe delegate*<uint, uint, byte, uint, void> glVertexAttribP4ui;
|
||||
internal unsafe delegate*<uint, uint, byte, uint*, void> glVertexAttribP4uiv;
|
||||
internal unsafe delegate*<uint, int, uint, byte, int, IntPtr*, void> glVertexAttribPointer;
|
||||
internal unsafe delegate*<uint, uint, void> glVertexBindingDivisor;
|
||||
internal unsafe delegate*<int, int, int, int, void> glViewport;
|
||||
internal unsafe delegate*<uint, int, float*, void> glViewportArrayv;
|
||||
internal unsafe delegate*<uint, float, float, float, float, void> glViewportIndexedf;
|
||||
internal unsafe delegate*<uint, float*, void> glViewportIndexedfv;
|
||||
internal unsafe delegate*<glSync, uint, IntPtr, void> glWaitSync;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,698 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glContextShadow"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
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;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -113,15 +113,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void AttachShader(
|
||||
GlHandle program,
|
||||
GlHandle shader
|
||||
)
|
||||
{
|
||||
Context.glAttachShader(program.Value, shader.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindBuffer(
|
||||
BufferType bufferType,
|
||||
@@ -147,7 +138,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
GlHandle handle
|
||||
)
|
||||
{
|
||||
Context.glBindFramebuffer((uint)target, handle.SignedValue);
|
||||
Context.glBindFramebuffer((uint)target, handle.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -158,15 +149,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
Context.glBindRenderbuffer(glConst.RENDERBUFFER, handle.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindTexture(
|
||||
uint type,
|
||||
GlHandle texture
|
||||
)
|
||||
{
|
||||
Context.glBindTexture(type, texture.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindVertexArray(
|
||||
GlHandle handle
|
||||
@@ -191,17 +173,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
Context.glClear((uint)mask);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void ClearColor(
|
||||
float R,
|
||||
float G,
|
||||
float B,
|
||||
float A
|
||||
)
|
||||
{
|
||||
Context.glClearColor(R, G, B, A);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ClearError()
|
||||
{
|
||||
@@ -237,26 +208,12 @@ namespace StgSharp.Graphics.OpenGL
|
||||
glConst.RENDERBUFFER, rboHandle.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void CompileShader(
|
||||
GlHandle shaderhandle
|
||||
)
|
||||
{
|
||||
Context.glCompileShader(shaderhandle.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe GlHandle CreateGraphicProgram()
|
||||
{
|
||||
return GlHandle.Create(Context.glCreateProgram());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public GlHandle CreateProgram()
|
||||
{
|
||||
return GlHandle.Create(Context.glCreateProgram());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe GlHandle[] CreateProgram(
|
||||
int count
|
||||
@@ -349,7 +306,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
bool isWrite
|
||||
)
|
||||
{
|
||||
Context.glDepthMask(isWrite);
|
||||
Context.glDepthMask(isWrite ? (byte)1 : (byte)0);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -364,7 +321,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
public unsafe void DrawArrays(
|
||||
GeometryType mode,
|
||||
int first,
|
||||
uint count
|
||||
int count
|
||||
)
|
||||
{
|
||||
Context.glDrawArrays((uint)mode, first, count);
|
||||
@@ -373,7 +330,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void DrawElements(
|
||||
GeometryType mode,
|
||||
uint count,
|
||||
int count,
|
||||
TypeCode type,
|
||||
IntPtr ptr
|
||||
)
|
||||
@@ -387,39 +344,28 @@ namespace StgSharp.Graphics.OpenGL
|
||||
_ => 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, (void*)ptr);
|
||||
Context.glDrawElements((uint)mode, count, a, (nint*)ptr);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawElementsInstanced(
|
||||
GeometryType mode,
|
||||
uint count,
|
||||
int count,
|
||||
TypeCode type,
|
||||
IntPtr ptr,
|
||||
uint amount
|
||||
int amount
|
||||
)
|
||||
{
|
||||
uint a;
|
||||
switch (type)
|
||||
a = type switch
|
||||
{
|
||||
case TypeCode.UInt32:
|
||||
a = glConst.UNSIGNED_INT;
|
||||
break;
|
||||
|
||||
case TypeCode.UInt16:
|
||||
a = glConst.UNSIGNED_SHORT;
|
||||
break;
|
||||
|
||||
case TypeCode.Byte:
|
||||
a = glConst.UNSIGNED_BYTE;
|
||||
break;
|
||||
default:
|
||||
DefaultLog.InternalWriteLog(
|
||||
$"{$"Parameter error in parameter {nameof(type)} method DrawElements. "}{$"Only {typeof(uint).Name},{typeof(ushort).Name},{typeof(byte).Name} types are supported."}",
|
||||
LogType.Error);
|
||||
return;
|
||||
}
|
||||
Context.glDrawElementsInstanced((uint)mode, count, a, (void*)ptr, amount);
|
||||
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)]
|
||||
@@ -512,12 +458,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
return h;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public uint GetError()
|
||||
{
|
||||
return Context.glGetError();
|
||||
}
|
||||
|
||||
public unsafe int GetMaskInteger(
|
||||
uint statusCode
|
||||
)
|
||||
@@ -552,7 +492,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
fixed (T* tptr = dataStream) {
|
||||
Context.glGetTexImage((uint)target, level, (uint)channel, (uint)channelLayout,
|
||||
tptr);
|
||||
(nint*)tptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -599,19 +539,18 @@ namespace StgSharp.Graphics.OpenGL
|
||||
)
|
||||
{
|
||||
fixed (byte* streamPtr = codeStream) {
|
||||
Context.glShaderSource(shaderHandle.Value, 1, &streamPtr, (void*)0);
|
||||
Context.glShaderSource(shaderHandle.Value, 1, &streamPtr, (int*)0);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void LoadShaderSource(
|
||||
GlHandle shaderHandle,
|
||||
ReadOnlySpan<char> codeStream
|
||||
)
|
||||
{
|
||||
fixed (char* streamPtr = codeStream)
|
||||
{
|
||||
byte* bptr = (byte*)streamPtr;
|
||||
Context.glShaderSource(shaderHandle.Value, 1, &bptr, (void*)0);
|
||||
fixed (char* streamPtr = codeStream) {
|
||||
Context.glShaderSource(shaderHandle.Value, 1, (byte**)&streamPtr, (int*)0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -623,7 +562,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
fixed (byte* streamPtr = codeStream)
|
||||
{
|
||||
byte* bptr = streamPtr;
|
||||
Context.glShaderSource(shaderHandle.Value, 1, &bptr, (void*)0);
|
||||
Context.glShaderSource(shaderHandle.Value, 1, &bptr, (int*)0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -635,15 +574,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
Context.glPolygonMode(glConst.FRONT_AND_BACK, (uint)mode);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void PolygonOffset(
|
||||
float factor,
|
||||
float unit
|
||||
)
|
||||
{
|
||||
Context.glPolygonOffset(factor, unit);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ReadPixels(
|
||||
(int X, int Y) beginPosition,
|
||||
@@ -655,7 +585,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
fixed (byte* bptr = stream) {
|
||||
Context.glReadPixels(beginPosition.X, beginPosition.Y, size.width, size.height,
|
||||
(uint)format, (uint)dataType, bptr);
|
||||
(uint)format, (uint)dataType, (nint*)bptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -672,7 +602,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
fixed (byte* bptr = pixels) {
|
||||
Context.glReadPixels(beginPosition.X, beginPosition.Y, i.Width, i.Height,
|
||||
(uint)format, (uint)dataType, bptr);
|
||||
(uint)format, (uint)dataType, (nint*)bptr);
|
||||
}
|
||||
i.PixelUpdateCount++;
|
||||
}
|
||||
@@ -688,7 +618,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
T* p = &bufferData;
|
||||
|
||||
Context.glBufferData((uint)bufferType, (IntPtr)size, (IntPtr)p, (uint)usage);
|
||||
Context.glBufferData((uint)bufferType, (nuint)size, (nint*)p, (uint)usage);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -704,8 +634,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
fixed (void* bufferPtr = bufferArray) {
|
||||
Context.glBufferData((uint)bufferType, (IntPtr)size, (IntPtr)bufferPtr,
|
||||
(uint)usage);
|
||||
Context.glBufferData((uint)bufferType, (nuint)size, (nint*)bufferPtr, (uint)usage);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -716,13 +645,13 @@ namespace StgSharp.Graphics.OpenGL
|
||||
BufferUsage usage
|
||||
) where T : unmanaged,INumber<T>
|
||||
{
|
||||
int size = bufferSpan.Length * Marshal.SizeOf(typeof(T));
|
||||
if (bufferSpan == null) {
|
||||
int size = bufferSpan.Length * Marshal.SizeOf<T>();
|
||||
if (bufferSpan.IsEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
fixed (void* bufferPtr = bufferSpan) {
|
||||
Context.glBufferData((uint)bufferType, (IntPtr)size, (IntPtr)bufferPtr,
|
||||
Context.glBufferData((uint)bufferType, (nuint)size, (IntPtr*)bufferPtr,
|
||||
(uint)usage);
|
||||
}
|
||||
}
|
||||
@@ -734,14 +663,14 @@ namespace StgSharp.Graphics.OpenGL
|
||||
BufferUsage usage
|
||||
) where T : unmanaged, INumber<T>
|
||||
{
|
||||
int size = bufferArray.Length * Marshal.SizeOf(typeof(T));
|
||||
if (bufferArray == null) {
|
||||
int size = bufferArray.Length * Marshal.SizeOf<T>();
|
||||
if (bufferArray.IsEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
fixed (void* bufferPtr = bufferArray) {
|
||||
Context.glBufferData((uint)bufferType, (IntPtr)size, (IntPtr)bufferPtr,
|
||||
Context.glBufferData((uint)bufferType, (nuint)size, (IntPtr*)bufferPtr,
|
||||
(uint)usage);
|
||||
}
|
||||
}
|
||||
@@ -753,10 +682,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
BufferUsage usage
|
||||
) where T : unmanaged, IUnmanagedVector<T>
|
||||
{
|
||||
int size = bufferSpan.Length * Marshal.SizeOf(typeof(T));
|
||||
int size = bufferSpan.Length * Marshal.SizeOf<T>();
|
||||
|
||||
fixed (void* bufferPtr = bufferSpan) {
|
||||
Context.glBufferData((uint)bufferType, (IntPtr)size, (IntPtr)bufferPtr,
|
||||
Context.glBufferData((uint)bufferType, (nuint)size, (IntPtr*)bufferPtr,
|
||||
(uint)usage);
|
||||
}
|
||||
}
|
||||
@@ -773,7 +702,7 @@ namespace StgSharp.Graphics.OpenGL
|
||||
return;
|
||||
}
|
||||
fixed (void* bufferPtr = bufferArray) {
|
||||
Context.glBufferData((uint)bufferType, (IntPtr)size, (IntPtr)bufferPtr,
|
||||
Context.glBufferData((uint)bufferType, (nuint)size, (IntPtr*)bufferPtr,
|
||||
(uint)usage);
|
||||
}
|
||||
}
|
||||
@@ -804,13 +733,13 @@ namespace StgSharp.Graphics.OpenGL
|
||||
int size,
|
||||
TypeCode t,
|
||||
bool normalized,
|
||||
uint stride,
|
||||
int stride,
|
||||
int pointer
|
||||
)
|
||||
{
|
||||
uint type = GraphicFramework.GLtype[(int)t];
|
||||
Context.glVertexAttribPointer(index, size, type, normalized ? 1 : 0, stride,
|
||||
(void*)pointer);
|
||||
Context.glVertexAttribPointer(index, size, type, (byte)(normalized ? 1 : 0), stride,
|
||||
(nint*)pointer);
|
||||
Context.glEnableVertexAttribArray(index);
|
||||
}
|
||||
|
||||
@@ -819,8 +748,8 @@ namespace StgSharp.Graphics.OpenGL
|
||||
Texture2DTarget target,
|
||||
int level,
|
||||
ImageChannel sourceChannel,
|
||||
uint width,
|
||||
uint height,
|
||||
int width,
|
||||
int height,
|
||||
ImageChannel targetChannel,
|
||||
PixelChannelLayout type,
|
||||
T[] pixels
|
||||
@@ -829,8 +758,8 @@ namespace StgSharp.Graphics.OpenGL
|
||||
fixed (T* tptr = pixels)
|
||||
{
|
||||
T* ptr = ((pixels == null) || (pixels.Length == 0)) ? (T*)IntPtr.Zero : tptr;
|
||||
Context.glTexImage2D((uint)target, level, (uint)sourceChannel, width, height, 0,
|
||||
(uint)targetChannel, (uint)type, tptr);
|
||||
Context.glTexImage2D((uint)target, level, (int)sourceChannel, width, height, 0,
|
||||
(uint)targetChannel, (uint)type, (nint*)tptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -839,16 +768,16 @@ namespace StgSharp.Graphics.OpenGL
|
||||
Texture2DTarget target,
|
||||
int level,
|
||||
ImageChannel sourceChannel,
|
||||
uint width,
|
||||
uint height,
|
||||
int width,
|
||||
int height,
|
||||
ImageChannel targetChannel,
|
||||
PixelChannelLayout type,
|
||||
Span<T> pixelSpan
|
||||
) where T : unmanaged, INumber<T>
|
||||
{
|
||||
fixed (T* tPtr = pixelSpan) {
|
||||
Context.glTexImage2D((uint)target, level, (uint)sourceChannel, width, height, 0,
|
||||
(uint)targetChannel, (uint)type, tPtr);
|
||||
Context.glTexImage2D((uint)target, level, (int)sourceChannel, width, height, 0,
|
||||
(uint)targetChannel, (uint)type, (nint*)tPtr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -870,14 +799,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
return contextToGLMap.TryGetValue(handle, out functionPackage);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UseProgram(
|
||||
GlHandle program
|
||||
)
|
||||
{
|
||||
Context.glUseProgram(program.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void VertexAttributeDivisor(
|
||||
uint layoutIndex,
|
||||
@@ -887,17 +808,6 @@ namespace StgSharp.Graphics.OpenGL
|
||||
Context.glVertexAttribDivisor(layoutIndex, divisor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Viewport(
|
||||
int x,
|
||||
int y,
|
||||
uint width,
|
||||
uint height
|
||||
)
|
||||
{
|
||||
Context.glViewport(x, y, width, height);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void WaitAccomplishment()
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,157 +1,312 @@
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-29 08:55:37Z
|
||||
// Version: 4.0
|
||||
// </auto-generated>
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glFunction.v4_0"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
public unsafe partial class OpenGLFunction
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindTransformFeedback(uint target, uint id)
|
||||
public void BeginQueryIndexed(
|
||||
uint target,
|
||||
uint index,
|
||||
uint id
|
||||
)
|
||||
{
|
||||
Context.glBeginQueryIndexed(target, index, id);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindTransformFeedback(
|
||||
uint target,
|
||||
uint id
|
||||
)
|
||||
{
|
||||
Context.glBindTransformFeedback(target, id);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BlendEquationSeparatei(uint buf, uint modeRGB, uint modeAlpha)
|
||||
{
|
||||
Context.glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BlendEquationi(uint buf, uint mode)
|
||||
public void BlendEquationi(
|
||||
uint buf,
|
||||
uint mode
|
||||
)
|
||||
{
|
||||
Context.glBlendEquationi(buf, mode);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BlendFuncSeparatei(uint buf, uint srcRGB, uint dstRGB, uint srcAlpha, uint dstAlpha)
|
||||
public void BlendEquationSeparatei(
|
||||
uint buf,
|
||||
uint modeRGB,
|
||||
uint modeAlpha
|
||||
)
|
||||
{
|
||||
Context.glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
|
||||
Context.glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BlendFunci(uint buf, uint src, uint dst)
|
||||
public void BlendFunci(
|
||||
uint buf,
|
||||
uint src,
|
||||
uint dst
|
||||
)
|
||||
{
|
||||
Context.glBlendFunci(buf, src, dst);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DeleteTransformFeedbacks(int n, uint* ids)
|
||||
public void BlendFuncSeparatei(
|
||||
uint buf,
|
||||
uint srcRGB,
|
||||
uint dstRGB,
|
||||
uint srcAlpha,
|
||||
uint dstAlpha
|
||||
)
|
||||
{
|
||||
Context.glDeleteTransformFeedbacks(n, ids);
|
||||
Context.glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawArraysIndirect(uint mode, IntPtr* indirect)
|
||||
public void DeleteTransformFeedbacks(
|
||||
int n,
|
||||
ReadOnlySpan<uint> ids
|
||||
)
|
||||
{
|
||||
Context.glDrawArraysIndirect(mode, indirect);
|
||||
fixed (uint* idsPtr = ids) {
|
||||
Context.glDeleteTransformFeedbacks(n, idsPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawElementsIndirect(uint mode, uint type, IntPtr* indirect)
|
||||
public void DrawArraysIndirect(
|
||||
uint mode,
|
||||
ReadOnlySpan<IntPtr> indirect
|
||||
)
|
||||
{
|
||||
Context.glDrawElementsIndirect(mode, type, indirect);
|
||||
fixed (IntPtr* indirectPtr = indirect) {
|
||||
Context.glDrawArraysIndirect(mode, indirectPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawTransformFeedback(uint mode, uint id)
|
||||
public void DrawElementsIndirect(
|
||||
uint mode,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> indirect
|
||||
)
|
||||
{
|
||||
fixed (IntPtr* indirectPtr = indirect) {
|
||||
Context.glDrawElementsIndirect(mode, (uint)type, indirectPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawTransformFeedback(
|
||||
uint mode,
|
||||
uint id
|
||||
)
|
||||
{
|
||||
Context.glDrawTransformFeedback(mode, id);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawTransformFeedbackStream(uint mode, uint id, uint stream)
|
||||
public void DrawTransformFeedbackStream(
|
||||
uint mode,
|
||||
uint id,
|
||||
uint stream
|
||||
)
|
||||
{
|
||||
Context.glDrawTransformFeedbackStream(mode, id, stream);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GenTransformFeedbacks(int n, uint* ids)
|
||||
public void EndQueryIndexed(
|
||||
uint target,
|
||||
uint index
|
||||
)
|
||||
{
|
||||
Context.glEndQueryIndexed(target, index);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GenTransformFeedbacks(
|
||||
int n,
|
||||
uint* ids
|
||||
)
|
||||
{
|
||||
Context.glGenTransformFeedbacks(n, ids);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetActiveSubroutineName(GlHandle program, uint shadertype, uint index, int bufSize, int* length, byte* name)
|
||||
public void GetActiveSubroutineName(
|
||||
GlHandle program,
|
||||
ShaderType shaderType,
|
||||
uint index,
|
||||
int bufSize,
|
||||
int* length,
|
||||
byte* name
|
||||
)
|
||||
{
|
||||
Context.glGetActiveSubroutineName(program.Value, shadertype, index, bufSize, length, name);
|
||||
Context.glGetActiveSubroutineName(program.Value, (uint)shaderType, index, bufSize,
|
||||
length, name);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetActiveSubroutineUniformName(GlHandle program, uint shadertype, uint index, int bufSize, int* length, byte* name)
|
||||
public void GetActiveSubroutineUniformiv(
|
||||
GlHandle program,
|
||||
ShaderType shaderType,
|
||||
uint index,
|
||||
uint pName,
|
||||
int* values
|
||||
)
|
||||
{
|
||||
Context.glGetActiveSubroutineUniformName(program.Value, shadertype, index, bufSize, length, name);
|
||||
Context.glGetActiveSubroutineUniformiv(program.Value, (uint)shaderType, index, pName,
|
||||
values);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetActiveSubroutineUniformiv(GlHandle program, uint shadertype, uint index, uint pname, int* values)
|
||||
public void GetActiveSubroutineUniformName(
|
||||
GlHandle program,
|
||||
ShaderType shaderType,
|
||||
uint index,
|
||||
int bufSize,
|
||||
int* length,
|
||||
byte* name
|
||||
)
|
||||
{
|
||||
Context.glGetActiveSubroutineUniformiv(program.Value, shadertype, index, pname, values);
|
||||
Context.glGetActiveSubroutineUniformName(program.Value, (uint)shaderType, index,
|
||||
bufSize, length, name);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetProgramStageiv(GlHandle program, uint shadertype, uint pname, int* values)
|
||||
public void GetProgramStageiv(
|
||||
GlHandle program,
|
||||
ShaderType shaderType,
|
||||
uint pName,
|
||||
int* values
|
||||
)
|
||||
{
|
||||
Context.glGetProgramStageiv(program.Value, shadertype, pname, values);
|
||||
Context.glGetProgramStageiv(program.Value, (uint)shaderType, pName, values);
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public uint GetSubroutineIndex(GlHandle program, uint shadertype, byte* name)
|
||||
public uint GetSubroutineIndex(
|
||||
GlHandle program,
|
||||
ShaderType shaderType,
|
||||
ReadOnlySpan<byte> name
|
||||
)
|
||||
{
|
||||
return Context.glGetSubroutineIndex(program.Value, shadertype, name);
|
||||
fixed (byte* namePtr = name) {
|
||||
return Context.glGetSubroutineIndex(program.Value, (uint)shaderType, namePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public int GetSubroutineUniformLocation(GlHandle program, uint shadertype, byte* name)
|
||||
public int GetSubroutineUniformLocation(
|
||||
GlHandle program,
|
||||
ShaderType shaderType,
|
||||
ReadOnlySpan<byte> name
|
||||
)
|
||||
{
|
||||
return Context.glGetSubroutineUniformLocation(program.Value, shadertype, name);
|
||||
fixed (byte* namePtr = name) {
|
||||
return Context.glGetSubroutineUniformLocation(program.Value, (uint)shaderType, namePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetUniformSubroutineuiv(uint shadertype, int location, uint* @params)
|
||||
{
|
||||
Context.glGetUniformSubroutineuiv(shadertype, location, @params);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetUniformdv(GlHandle program, int location, double* @params)
|
||||
public void GetUniformdv(
|
||||
GlHandle program,
|
||||
int location,
|
||||
double* @params
|
||||
)
|
||||
{
|
||||
Context.glGetUniformdv(program.Value, location, @params);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public byte IsTransformFeedback(uint id)
|
||||
public void GetUniformSubroutineuiv(
|
||||
ShaderType shaderType,
|
||||
int location,
|
||||
uint* @params
|
||||
)
|
||||
{
|
||||
Context.glGetUniformSubroutineuiv((uint)shaderType, location, @params);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public byte IsTransformFeedback(
|
||||
uint id
|
||||
)
|
||||
{
|
||||
return Context.glIsTransformFeedback(id);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MinSampleShading(float value)
|
||||
public void MinSampleShading(
|
||||
float value
|
||||
)
|
||||
{
|
||||
Context.glMinSampleShading(value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void PatchParameterfv(uint pname, float* values)
|
||||
public void PatchParameterfv(
|
||||
uint pName,
|
||||
ReadOnlySpan<float> values
|
||||
)
|
||||
{
|
||||
Context.glPatchParameterfv(pname, values);
|
||||
fixed (float* valuesPtr = values) {
|
||||
Context.glPatchParameterfv(pName, valuesPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void PatchParameteri(uint pname, int value)
|
||||
public void PatchParameteri(
|
||||
uint pName,
|
||||
int value
|
||||
)
|
||||
{
|
||||
Context.glPatchParameteri(pname, value);
|
||||
Context.glPatchParameteri(pName, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -167,111 +322,222 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform1d(int location, double x)
|
||||
public void Uniform1d(
|
||||
int location,
|
||||
double x
|
||||
)
|
||||
{
|
||||
Context.glUniform1d(location, x);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform1dv(int location, int count, double* value)
|
||||
public void Uniform1dv(
|
||||
int location,
|
||||
int count,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniform1dv(location, count, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniform1dv(location, count, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform2d(int location, double x, double y)
|
||||
public void Uniform2d(
|
||||
int location,
|
||||
double x,
|
||||
double y
|
||||
)
|
||||
{
|
||||
Context.glUniform2d(location, x, y);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform2dv(int location, int count, double* value)
|
||||
public void Uniform2dv(
|
||||
int location,
|
||||
int count,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniform2dv(location, count, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniform2dv(location, count, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform3d(int location, double x, double y, double z)
|
||||
public void Uniform3d(
|
||||
int location,
|
||||
double x,
|
||||
double y,
|
||||
double z
|
||||
)
|
||||
{
|
||||
Context.glUniform3d(location, x, y, z);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform3dv(int location, int count, double* value)
|
||||
public void Uniform3dv(
|
||||
int location,
|
||||
int count,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniform3dv(location, count, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniform3dv(location, count, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform4d(int location, double x, double y, double z, double w)
|
||||
public void Uniform4d(
|
||||
int location,
|
||||
double x,
|
||||
double y,
|
||||
double z,
|
||||
double w
|
||||
)
|
||||
{
|
||||
Context.glUniform4d(location, x, y, z, w);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Uniform4dv(int location, int count, double* value)
|
||||
public void Uniform4dv(
|
||||
int location,
|
||||
int count,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniform4dv(location, count, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniform4dv(location, count, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix2dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix2dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix2dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix2dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix2x3dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix2x3dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix2x3dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix2x3dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix2x4dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix2x4dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix2x4dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix2x4dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix3dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix3dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix3dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix3dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix3x2dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix3x2dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix3x2dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix3x2dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix3x4dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix3x4dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix3x4dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix3x4dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix4dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix4dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix4dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix4dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix4x2dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix4x2dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix4x2dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix4x2dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformMatrix4x3dv(int location, int count, byte transpose, double* value)
|
||||
public void UniformMatrix4x3dv(
|
||||
int location,
|
||||
int count,
|
||||
byte transpose,
|
||||
ReadOnlySpan<double> value
|
||||
)
|
||||
{
|
||||
Context.glUniformMatrix4x3dv(location, count, transpose, value);
|
||||
fixed (double* valuePtr = value) {
|
||||
Context.glUniformMatrix4x3dv(location, count, transpose, valuePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void UniformSubroutinesuiv(uint shadertype, int count, uint* indices)
|
||||
public void UniformSubroutinesuiv(
|
||||
ShaderType shaderType,
|
||||
int count,
|
||||
ReadOnlySpan<uint> indices
|
||||
)
|
||||
{
|
||||
Context.glUniformSubroutinesuiv(shadertype, count, indices);
|
||||
fixed (uint* indicesPtr = indices) {
|
||||
Context.glUniformSubroutinesuiv((uint)shaderType, count, indicesPtr);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,83 +1,190 @@
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-29 08:55:37Z
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glFunction.v4_2"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-30 02:54:41Z
|
||||
// Version: 4.2
|
||||
// </auto-generated>
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
public unsafe partial class OpenGLFunction
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindImageTexture(uint unit, GlHandle texture, int level, byte layered, int layer, uint access, uint format)
|
||||
public void BindImageTexture(
|
||||
uint unit,
|
||||
GlHandle texture,
|
||||
int level,
|
||||
byte layered,
|
||||
int layer,
|
||||
uint access,
|
||||
uint format
|
||||
)
|
||||
{
|
||||
Context.glBindImageTexture(unit, texture.Value, level, layered, layer, access, format);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawArraysInstancedBaseInstance(uint mode, int first, int count, int instancecount, uint baseinstance)
|
||||
public void DrawArraysInstancedBaseInstance(
|
||||
uint mode,
|
||||
int first,
|
||||
int count,
|
||||
int instancecount,
|
||||
uint baseinstance
|
||||
)
|
||||
{
|
||||
Context.glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
|
||||
Context.glDrawArraysInstancedBaseInstance(mode, first, count, instancecount,
|
||||
baseinstance);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawElementsInstancedBaseInstance(uint mode, int count, uint type, IntPtr* indices, int instancecount, uint baseinstance)
|
||||
public void DrawElementsInstancedBaseInstance(
|
||||
uint mode,
|
||||
int count,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> indices,
|
||||
int instancecount,
|
||||
uint baseinstance
|
||||
)
|
||||
{
|
||||
Context.glDrawElementsInstancedBaseInstance(mode, count, type, indices, instancecount, baseinstance);
|
||||
fixed (IntPtr* indicesPtr = indices) {
|
||||
Context.glDrawElementsInstancedBaseInstance(mode, count, (uint)type, indicesPtr,
|
||||
instancecount, baseinstance);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawElementsInstancedBaseVertexBaseInstance(uint mode, int count, uint type, IntPtr* indices, int instancecount, int basevertex, uint baseinstance)
|
||||
public void DrawElementsInstancedBaseVertexBaseInstance(
|
||||
uint mode,
|
||||
int count,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> indices,
|
||||
int instancecount,
|
||||
int basevertex,
|
||||
uint baseinstance
|
||||
)
|
||||
{
|
||||
Context.glDrawElementsInstancedBaseVertexBaseInstance(mode, count, type, indices, instancecount, basevertex, baseinstance);
|
||||
fixed (IntPtr* indicesPtr = indices) {
|
||||
Context.glDrawElementsInstancedBaseVertexBaseInstance(mode, count, (uint)type,
|
||||
indicesPtr, instancecount,
|
||||
basevertex, baseinstance);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawTransformFeedbackInstanced(uint mode, uint id, int instancecount)
|
||||
public void DrawTransformFeedbackInstanced(
|
||||
uint mode,
|
||||
uint id,
|
||||
int instancecount
|
||||
)
|
||||
{
|
||||
Context.glDrawTransformFeedbackInstanced(mode, id, instancecount);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DrawTransformFeedbackStreamInstanced(uint mode, uint id, uint stream, int instancecount)
|
||||
public void DrawTransformFeedbackStreamInstanced(
|
||||
uint mode,
|
||||
uint id,
|
||||
uint stream,
|
||||
int instancecount
|
||||
)
|
||||
{
|
||||
Context.glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetActiveAtomicCounterBufferiv(GlHandle program, GlHandle bufferIndex, uint pname, int* @params)
|
||||
public void GetActiveAtomicCounterBufferiv(
|
||||
GlHandle program,
|
||||
GlHandle bufferIndex,
|
||||
uint pname,
|
||||
int* @params
|
||||
)
|
||||
{
|
||||
Context.glGetActiveAtomicCounterBufferiv(program.Value, bufferIndex.Value, pname, @params);
|
||||
Context.glGetActiveAtomicCounterBufferiv(program.Value, bufferIndex.Value, pname,
|
||||
@params);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetInternalformativ(uint target, uint internalformat, uint pname, int count, int* @params)
|
||||
public void GetInternalformativ(
|
||||
uint target,
|
||||
uint internalformat,
|
||||
uint pname,
|
||||
int count,
|
||||
int* @params
|
||||
)
|
||||
{
|
||||
Context.glGetInternalformativ(target, internalformat, pname, count, @params);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MemoryBarrier(uint barriers)
|
||||
public void MemoryBarrier(
|
||||
uint barriers
|
||||
)
|
||||
{
|
||||
Context.glMemoryBarrier(barriers);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TexStorage1D(uint target, int levels, uint internalformat, int width)
|
||||
public void TexStorage1D(
|
||||
uint target,
|
||||
int levels,
|
||||
uint internalformat,
|
||||
int width
|
||||
)
|
||||
{
|
||||
Context.glTexStorage1D(target, levels, internalformat, width);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TexStorage2D(uint target, int levels, uint internalformat, int width, int height)
|
||||
public void TexStorage2D(
|
||||
uint target,
|
||||
int levels,
|
||||
uint internalformat,
|
||||
int width,
|
||||
int height
|
||||
)
|
||||
{
|
||||
Context.glTexStorage2D(target, levels, internalformat, width, height);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TexStorage3D(uint target, int levels, uint internalformat, int width, int height, int depth)
|
||||
public void TexStorage3D(
|
||||
uint target,
|
||||
int levels,
|
||||
uint internalformat,
|
||||
int width,
|
||||
int height,
|
||||
int depth
|
||||
)
|
||||
{
|
||||
Context.glTexStorage3D(target, levels, internalformat, width, height, depth);
|
||||
}
|
||||
|
||||
@@ -1,205 +1,447 @@
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-29 08:55:37Z
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glFunction.v4_3"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-30 02:54:41Z
|
||||
// Version: 4.3
|
||||
// </auto-generated>
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
public unsafe partial class OpenGLFunction
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindVertexBuffer(uint bindingindex, GlHandle buffer, nint offset, int stride)
|
||||
public void BindVertexBuffer(
|
||||
uint bindingindex,
|
||||
GlHandle buffer,
|
||||
nint offset,
|
||||
int stride
|
||||
)
|
||||
{
|
||||
Context.glBindVertexBuffer(bindingindex, buffer.Value, offset, stride);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ClearBufferData(uint target, uint internalformat, uint format, uint type, IntPtr* data)
|
||||
public void ClearBufferData(
|
||||
uint target,
|
||||
uint internalformat,
|
||||
uint format,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> data
|
||||
)
|
||||
{
|
||||
Context.glClearBufferData(target, internalformat, format, type, data);
|
||||
fixed (IntPtr* dataPtr = data) {
|
||||
Context.glClearBufferData(target, internalformat, format, (uint)type, dataPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ClearBufferSubData(uint target, uint internalformat, nint offset, nuint size, uint format, uint type, IntPtr* data)
|
||||
public void ClearBufferSubData(
|
||||
uint target,
|
||||
uint internalformat,
|
||||
nint offset,
|
||||
nuint size,
|
||||
uint format,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> data
|
||||
)
|
||||
{
|
||||
Context.glClearBufferSubData(target, internalformat, offset, size, format, type, data);
|
||||
fixed (IntPtr* dataPtr = data) {
|
||||
Context.glClearBufferSubData(target, internalformat, offset, size, format,
|
||||
(uint)type, dataPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void CopyImageSubData(uint srcName, uint srcTarget, int srcLevel, int srcX, int srcY, int srcZ, uint dstName, uint dstTarget, int dstLevel, int dstX, int dstY, int dstZ, int srcWidth, int srcHeight, int srcDepth)
|
||||
public void CopyImageSubData(
|
||||
uint srcName,
|
||||
uint srcTarget,
|
||||
int srcLevel,
|
||||
int srcX,
|
||||
int srcY,
|
||||
int srcZ,
|
||||
uint dstName,
|
||||
uint dstTarget,
|
||||
int dstLevel,
|
||||
int dstX,
|
||||
int dstY,
|
||||
int dstZ,
|
||||
int srcWidth,
|
||||
int srcHeight,
|
||||
int srcDepth
|
||||
)
|
||||
{
|
||||
Context.glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
|
||||
Context.glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName,
|
||||
dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight,
|
||||
srcDepth);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DebugMessageCallback(IntPtr callback, IntPtr* userParam)
|
||||
public void DebugMessageCallback(
|
||||
IntPtr callback,
|
||||
ReadOnlySpan<IntPtr> userParam
|
||||
)
|
||||
{
|
||||
Context.glDebugMessageCallback(callback, userParam);
|
||||
fixed (IntPtr* userParamPtr = userParam) {
|
||||
Context.glDebugMessageCallback(callback, userParamPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DebugMessageControl(uint source, uint type, uint severity, int count, uint* ids, byte enabled)
|
||||
public void DebugMessageControl(
|
||||
uint source,
|
||||
ShaderType type,
|
||||
uint severity,
|
||||
int count,
|
||||
ReadOnlySpan<uint> ids,
|
||||
byte enabled
|
||||
)
|
||||
{
|
||||
Context.glDebugMessageControl(source, type, severity, count, ids, enabled);
|
||||
fixed (uint* idsPtr = ids) {
|
||||
Context.glDebugMessageControl(source, (uint)type, severity, count, idsPtr, enabled);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DebugMessageInsert(uint source, uint type, uint id, uint severity, int length, byte* buf)
|
||||
public void DebugMessageInsert(
|
||||
uint source,
|
||||
ShaderType type,
|
||||
uint id,
|
||||
uint severity,
|
||||
int length,
|
||||
ReadOnlySpan<byte> buf
|
||||
)
|
||||
{
|
||||
Context.glDebugMessageInsert(source, type, id, severity, length, buf);
|
||||
fixed (byte* bufPtr = buf) {
|
||||
Context.glDebugMessageInsert(source, (uint)type, id, severity, length, bufPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DispatchCompute(uint num_groups_x, uint num_groups_y, uint num_groups_z)
|
||||
public void DispatchCompute(
|
||||
uint num_groups_x,
|
||||
uint num_groups_y,
|
||||
uint num_groups_z
|
||||
)
|
||||
{
|
||||
Context.glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void DispatchComputeIndirect(nint indirect)
|
||||
public void DispatchComputeIndirect(
|
||||
nint indirect
|
||||
)
|
||||
{
|
||||
Context.glDispatchComputeIndirect(indirect);
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public uint GetDebugMessageLog(uint count, int bufSize, uint* sources, uint* types, uint* ids, uint* severities, int* lengths, byte* messageLog)
|
||||
public uint GetDebugMessageLog(
|
||||
uint count,
|
||||
int bufSize,
|
||||
uint* sources,
|
||||
uint* types,
|
||||
uint* ids,
|
||||
uint* severities,
|
||||
int* lengths,
|
||||
byte* messageLog
|
||||
)
|
||||
{
|
||||
return Context.glGetDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog);
|
||||
return Context.glGetDebugMessageLog(count, bufSize, sources, types, ids, severities,
|
||||
lengths, messageLog);
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetInternalformati64v(uint target, uint internalformat, uint pname, int count, IntPtr* @params)
|
||||
public void GetInternalformati64v(
|
||||
uint target,
|
||||
uint internalformat,
|
||||
uint pname,
|
||||
int count,
|
||||
IntPtr* @params
|
||||
)
|
||||
{
|
||||
Context.glGetInternalformati64v(target, internalformat, pname, count, @params);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetObjectLabel(uint identifier, uint name, int bufSize, int* length, byte* label)
|
||||
public void GetObjectLabel(
|
||||
uint identifier,
|
||||
uint name,
|
||||
int bufSize,
|
||||
int* length,
|
||||
byte* label
|
||||
)
|
||||
{
|
||||
Context.glGetObjectLabel(identifier, name, bufSize, length, label);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetObjectPtrLabel(IntPtr* ptr, int bufSize, int* length, byte* label)
|
||||
public void GetObjectPtrLabel(
|
||||
ReadOnlySpan<IntPtr> ptr,
|
||||
int bufSize,
|
||||
int* length,
|
||||
byte* label
|
||||
)
|
||||
{
|
||||
Context.glGetObjectPtrLabel(ptr, bufSize, length, label);
|
||||
fixed (IntPtr* ptrPtr = ptr) {
|
||||
Context.glGetObjectPtrLabel(ptrPtr, bufSize, length, label);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetPointerv(uint pname, IntPtr* @params)
|
||||
{
|
||||
Context.glGetPointerv(pname, @params);
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public uint GetProgramResourceIndex(GlHandle program, uint programInterface, byte* name)
|
||||
public uint GetProgramResourceIndex(
|
||||
GlHandle program,
|
||||
uint programInterface,
|
||||
ReadOnlySpan<byte> name
|
||||
)
|
||||
{
|
||||
return Context.glGetProgramResourceIndex(program.Value, programInterface, name);
|
||||
fixed (byte* namePtr = name) {
|
||||
return Context.glGetProgramResourceIndex(program.Value, programInterface, namePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public int GetProgramResourceLocation(GlHandle program, uint programInterface, byte* name)
|
||||
public void GetProgramResourceiv(
|
||||
GlHandle program,
|
||||
uint programInterface,
|
||||
uint index,
|
||||
int propCount,
|
||||
ReadOnlySpan<uint> props,
|
||||
int count,
|
||||
int* length,
|
||||
int* @params
|
||||
)
|
||||
{
|
||||
return Context.glGetProgramResourceLocation(program.Value, programInterface, name);
|
||||
fixed (uint* propsPtr = props) {
|
||||
Context.glGetProgramResourceiv(program.Value, programInterface, index, propCount,
|
||||
propsPtr, count, length, @params);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public int GetProgramResourceLocationIndex(GlHandle program, uint programInterface, byte* name)
|
||||
public int GetProgramResourceLocation(
|
||||
GlHandle program,
|
||||
uint programInterface,
|
||||
ReadOnlySpan<byte> name
|
||||
)
|
||||
{
|
||||
return Context.glGetProgramResourceLocationIndex(program.Value, programInterface, name);
|
||||
fixed (byte* namePtr = name) {
|
||||
return Context.glGetProgramResourceLocation(program.Value, programInterface, namePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetProgramResourceName(GlHandle program, uint programInterface, uint index, int bufSize, int* length, byte* name)
|
||||
public int GetProgramResourceLocationIndex(
|
||||
GlHandle program,
|
||||
uint programInterface,
|
||||
ReadOnlySpan<byte> name
|
||||
)
|
||||
{
|
||||
Context.glGetProgramResourceName(program.Value, programInterface, index, bufSize, length, name);
|
||||
fixed (byte* namePtr = name) {
|
||||
return Context.glGetProgramResourceLocationIndex(program.Value, programInterface, namePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void GetProgramResourceiv(GlHandle program, uint programInterface, uint index, int propCount, uint* props, int count, int* length, int* @params)
|
||||
public void GetProgramResourceName(
|
||||
GlHandle program,
|
||||
uint programInterface,
|
||||
uint index,
|
||||
int bufSize,
|
||||
int* length,
|
||||
byte* name
|
||||
)
|
||||
{
|
||||
Context.glGetProgramResourceiv(program.Value, programInterface, index, propCount, props, count, length, @params);
|
||||
Context.glGetProgramResourceName(program.Value, programInterface, index, bufSize,
|
||||
length, name);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void InvalidateBufferData(GlHandle buffer)
|
||||
public void InvalidateBufferData(
|
||||
GlHandle buffer
|
||||
)
|
||||
{
|
||||
Context.glInvalidateBufferData(buffer.Value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void InvalidateBufferSubData(GlHandle buffer, nint offset, nuint length)
|
||||
public void InvalidateBufferSubData(
|
||||
GlHandle buffer,
|
||||
nint offset,
|
||||
nuint length
|
||||
)
|
||||
{
|
||||
Context.glInvalidateBufferSubData(buffer.Value, offset, length);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void InvalidateFramebuffer(uint target, int numAttachments, uint* attachments)
|
||||
public void InvalidateFramebuffer(
|
||||
uint target,
|
||||
int numAttachments,
|
||||
ReadOnlySpan<uint> attachments
|
||||
)
|
||||
{
|
||||
Context.glInvalidateFramebuffer(target, numAttachments, attachments);
|
||||
fixed (uint* attachmentsPtr = attachments) {
|
||||
Context.glInvalidateFramebuffer(target, numAttachments, attachmentsPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void InvalidateSubFramebuffer(uint target, int numAttachments, uint* attachments, int x, int y, int width, int height)
|
||||
public void InvalidateSubFramebuffer(
|
||||
uint target,
|
||||
int numAttachments,
|
||||
ReadOnlySpan<uint> attachments,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height
|
||||
)
|
||||
{
|
||||
Context.glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
|
||||
fixed (uint* attachmentsPtr = attachments) {
|
||||
Context.glInvalidateSubFramebuffer(target, numAttachments, attachmentsPtr, x, y,
|
||||
width, height);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void InvalidateTexImage(GlHandle texture, int level)
|
||||
public void InvalidateTexImage(
|
||||
GlHandle texture,
|
||||
int level
|
||||
)
|
||||
{
|
||||
Context.glInvalidateTexImage(texture.Value, level);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void InvalidateTexSubImage(GlHandle texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth)
|
||||
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);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MultiDrawArraysIndirect(uint mode, IntPtr* indirect, int drawcount, int stride)
|
||||
public void MultiDrawArraysIndirect(
|
||||
uint mode,
|
||||
ReadOnlySpan<IntPtr> indirect,
|
||||
int drawcount,
|
||||
int stride
|
||||
)
|
||||
{
|
||||
Context.glMultiDrawArraysIndirect(mode, indirect, drawcount, stride);
|
||||
fixed (IntPtr* indirectPtr = indirect) {
|
||||
Context.glMultiDrawArraysIndirect(mode, indirectPtr, drawcount, stride);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MultiDrawElementsIndirect(uint mode, uint type, IntPtr* indirect, int drawcount, int stride)
|
||||
public void MultiDrawElementsIndirect(
|
||||
uint mode,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> indirect,
|
||||
int drawcount,
|
||||
int stride
|
||||
)
|
||||
{
|
||||
Context.glMultiDrawElementsIndirect(mode, type, indirect, drawcount, stride);
|
||||
fixed (IntPtr* indirectPtr = indirect) {
|
||||
Context.glMultiDrawElementsIndirect(mode, (uint)type, indirectPtr, drawcount,
|
||||
stride);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ObjectLabel(uint identifier, uint name, int length, byte* label)
|
||||
public void ObjectLabel(
|
||||
uint identifier,
|
||||
uint name,
|
||||
int length,
|
||||
ReadOnlySpan<byte> label
|
||||
)
|
||||
{
|
||||
Context.glObjectLabel(identifier, name, length, label);
|
||||
fixed (byte* labelPtr = label) {
|
||||
Context.glObjectLabel(identifier, name, length, labelPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ObjectPtrLabel(IntPtr* ptr, int length, byte* label)
|
||||
public void ObjectPtrLabel(
|
||||
ReadOnlySpan<IntPtr> ptr,
|
||||
int length,
|
||||
ReadOnlySpan<byte> label
|
||||
)
|
||||
{
|
||||
Context.glObjectPtrLabel(ptr, length, label);
|
||||
fixed (IntPtr* ptrPtr = ptr)
|
||||
{
|
||||
fixed (byte* labelPtr = label) {
|
||||
Context.glObjectPtrLabel(ptrPtr, length, labelPtr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -209,67 +451,133 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void PushDebugGroup(uint source, uint id, int length, byte* message)
|
||||
public void PushDebugGroup(
|
||||
uint source,
|
||||
uint id,
|
||||
int length,
|
||||
ReadOnlySpan<byte> message
|
||||
)
|
||||
{
|
||||
Context.glPushDebugGroup(source, id, length, message);
|
||||
fixed (byte* messagePtr = message) {
|
||||
Context.glPushDebugGroup(source, id, length, messagePtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ShaderStorageBlockBinding(GlHandle program, uint storageBlockIndex, uint storageBlockBinding)
|
||||
public void ShaderStorageBlockBinding(
|
||||
GlHandle program,
|
||||
uint storageBlockIndex,
|
||||
uint storageBlockBinding
|
||||
)
|
||||
{
|
||||
Context.glShaderStorageBlockBinding(program.Value, storageBlockIndex, storageBlockBinding);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TexBufferRange(uint target, uint internalformat, GlHandle buffer, nint offset, nuint size)
|
||||
public void TexBufferRange(
|
||||
uint target,
|
||||
uint internalformat,
|
||||
GlHandle buffer,
|
||||
nint offset,
|
||||
nuint size
|
||||
)
|
||||
{
|
||||
Context.glTexBufferRange(target, internalformat, buffer.Value, offset, size);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TexStorage2DMultisample(uint target, int samples, uint internalformat, int width, int height, byte fixedsamplelocations)
|
||||
public void TexStorage2DMultisample(
|
||||
uint target,
|
||||
int samples,
|
||||
uint internalformat,
|
||||
int width,
|
||||
int height,
|
||||
byte fixedsamplelocations
|
||||
)
|
||||
{
|
||||
Context.glTexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
|
||||
Context.glTexStorage2DMultisample(target, samples, internalformat, width, height,
|
||||
fixedsamplelocations);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TexStorage3DMultisample(uint target, int samples, uint internalformat, int width, int height, int depth, byte fixedsamplelocations)
|
||||
public void TexStorage3DMultisample(
|
||||
uint target,
|
||||
int samples,
|
||||
uint internalformat,
|
||||
int width,
|
||||
int height,
|
||||
int depth,
|
||||
byte fixedsamplelocations
|
||||
)
|
||||
{
|
||||
Context.glTexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
|
||||
Context.glTexStorage3DMultisample(target, samples, internalformat, width, height, depth,
|
||||
fixedsamplelocations);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TextureView(GlHandle texture, uint target, GlHandle origtexture, uint internalformat, uint minlevel, uint numlevels, uint minlayer, uint numlayers)
|
||||
public void TextureView(
|
||||
GlHandle texture,
|
||||
uint target,
|
||||
GlHandle origtexture,
|
||||
uint internalformat,
|
||||
uint minlevel,
|
||||
uint numlevels,
|
||||
uint minlayer,
|
||||
uint numlayers
|
||||
)
|
||||
{
|
||||
Context.glTextureView(texture.Value, target, origtexture.Value, internalformat, minlevel, numlevels, minlayer, numlayers);
|
||||
Context.glTextureView(texture.Value, target, origtexture.Value, internalformat,
|
||||
minlevel, numlevels, minlayer, numlayers);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void VertexAttribBinding(uint attribindex, uint bindingindex)
|
||||
public void VertexAttribBinding(
|
||||
uint attribindex,
|
||||
uint bindingindex
|
||||
)
|
||||
{
|
||||
Context.glVertexAttribBinding(attribindex, bindingindex);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void VertexAttribFormat(uint attribindex, int size, uint type, byte normalized, uint relativeoffset)
|
||||
public void VertexAttribFormat(
|
||||
uint attribindex,
|
||||
int size,
|
||||
ShaderType type,
|
||||
byte normalized,
|
||||
uint relativeoffset
|
||||
)
|
||||
{
|
||||
Context.glVertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
|
||||
Context.glVertexAttribFormat(attribindex, size, (uint)type, normalized, relativeoffset);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void VertexAttribIFormat(uint attribindex, int size, uint type, uint relativeoffset)
|
||||
public void VertexAttribIFormat(
|
||||
uint attribindex,
|
||||
int size,
|
||||
ShaderType type,
|
||||
uint relativeoffset
|
||||
)
|
||||
{
|
||||
Context.glVertexAttribIFormat(attribindex, size, type, relativeoffset);
|
||||
Context.glVertexAttribIFormat(attribindex, size, (uint)type, relativeoffset);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void VertexAttribLFormat(uint attribindex, int size, uint type, uint relativeoffset)
|
||||
public void VertexAttribLFormat(
|
||||
uint attribindex,
|
||||
int size,
|
||||
ShaderType type,
|
||||
uint relativeoffset
|
||||
)
|
||||
{
|
||||
Context.glVertexAttribLFormat(attribindex, size, type, relativeoffset);
|
||||
Context.glVertexAttribLFormat(attribindex, size, (uint)type, relativeoffset);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void VertexBindingDivisor(uint bindingindex, uint divisor)
|
||||
public void VertexBindingDivisor(
|
||||
uint bindingindex,
|
||||
uint divisor
|
||||
)
|
||||
{
|
||||
Context.glVertexBindingDivisor(bindingindex, divisor);
|
||||
}
|
||||
|
||||
@@ -1,67 +1,182 @@
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-29 08:55:37Z
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glFunction.v4_4"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-30 02:54:41Z
|
||||
// Version: 4.4
|
||||
// </auto-generated>
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
public unsafe partial class OpenGLFunction
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindBuffersBase(uint target, uint first, int count, uint* buffers)
|
||||
public void BindBuffersBase(
|
||||
uint target,
|
||||
uint first,
|
||||
int count,
|
||||
ReadOnlySpan<uint> buffers
|
||||
)
|
||||
{
|
||||
Context.glBindBuffersBase(target, first, count, buffers);
|
||||
fixed (uint* buffersPtr = buffers) {
|
||||
Context.glBindBuffersBase(target, first, count, buffersPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindBuffersRange(uint target, uint first, int count, uint* buffers, nint* offsets, nuint* sizes)
|
||||
public void BindBuffersRange(
|
||||
uint target,
|
||||
uint first,
|
||||
int count,
|
||||
ReadOnlySpan<uint> buffers,
|
||||
ReadOnlySpan<nint> offsets,
|
||||
ReadOnlySpan<nuint> sizes
|
||||
)
|
||||
{
|
||||
Context.glBindBuffersRange(target, first, count, buffers, offsets, sizes);
|
||||
fixed (uint* buffersPtr = buffers)
|
||||
{
|
||||
fixed (nint* offsetsPtr = offsets)
|
||||
{
|
||||
fixed (nuint* sizesPtr = sizes) {
|
||||
Context.glBindBuffersRange(target, first, count, buffersPtr, offsetsPtr,
|
||||
sizesPtr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindImageTextures(uint first, int count, uint* textures)
|
||||
public void BindImageTextures(
|
||||
uint first,
|
||||
int count,
|
||||
ReadOnlySpan<uint> textures
|
||||
)
|
||||
{
|
||||
Context.glBindImageTextures(first, count, textures);
|
||||
fixed (uint* texturesPtr = textures) {
|
||||
Context.glBindImageTextures(first, count, texturesPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindSamplers(uint first, int count, uint* samplers)
|
||||
public void BindSamplers(
|
||||
uint first,
|
||||
int count,
|
||||
ReadOnlySpan<uint> samplers
|
||||
)
|
||||
{
|
||||
Context.glBindSamplers(first, count, samplers);
|
||||
fixed (uint* samplersPtr = samplers) {
|
||||
Context.glBindSamplers(first, count, samplersPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindTextures(uint first, int count, uint* textures)
|
||||
public void BindTextures(
|
||||
uint first,
|
||||
int count,
|
||||
ReadOnlySpan<uint> textures
|
||||
)
|
||||
{
|
||||
Context.glBindTextures(first, count, textures);
|
||||
fixed (uint* texturesPtr = textures) {
|
||||
Context.glBindTextures(first, count, texturesPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BindVertexBuffers(uint first, int count, uint* buffers, nint* offsets, int* strides)
|
||||
public void BindVertexBuffers(
|
||||
uint first,
|
||||
int count,
|
||||
ReadOnlySpan<uint> buffers,
|
||||
ReadOnlySpan<nint> offsets,
|
||||
ReadOnlySpan<int> strides
|
||||
)
|
||||
{
|
||||
Context.glBindVertexBuffers(first, count, buffers, offsets, strides);
|
||||
fixed (uint* buffersPtr = buffers)
|
||||
{
|
||||
fixed (nint* offsetsPtr = offsets)
|
||||
{
|
||||
fixed (int* stridesPtr = strides) {
|
||||
Context.glBindVertexBuffers(first, count, buffersPtr, offsetsPtr,
|
||||
stridesPtr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void BufferStorage(uint target, nuint size, IntPtr* data, uint flags)
|
||||
public void BufferStorage(
|
||||
uint target,
|
||||
nuint size,
|
||||
ReadOnlySpan<IntPtr> data,
|
||||
uint flags
|
||||
)
|
||||
{
|
||||
Context.glBufferStorage(target, size, data, flags);
|
||||
fixed (IntPtr* dataPtr = data) {
|
||||
Context.glBufferStorage(target, size, dataPtr, flags);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ClearTexImage(GlHandle texture, int level, uint format, uint type, IntPtr* data)
|
||||
public void ClearTexImage(
|
||||
GlHandle texture,
|
||||
int level,
|
||||
uint format,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> data
|
||||
)
|
||||
{
|
||||
Context.glClearTexImage(texture.Value, level, format, type, data);
|
||||
fixed (IntPtr* dataPtr = data) {
|
||||
Context.glClearTexImage(texture.Value, level, format, (uint)type, dataPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[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, IntPtr* data)
|
||||
public void ClearTexSubImage(
|
||||
GlHandle texture,
|
||||
int level,
|
||||
int xoffset,
|
||||
int yoffset,
|
||||
int zoffset,
|
||||
int width,
|
||||
int height,
|
||||
int depth,
|
||||
uint format,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> data
|
||||
)
|
||||
{
|
||||
Context.glClearTexSubImage(texture.Value, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
|
||||
fixed (IntPtr* dataPtr = data) {
|
||||
Context.glClearTexSubImage(texture.Value, level, xoffset, yoffset, zoffset, width,
|
||||
height, depth, format, (uint)type, dataPtr);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,37 +1,105 @@
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-29 08:55:37Z
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glFunction.v4_6"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Generated by StgSharp.GenerateGL on 2025-12-30 02:54:41Z
|
||||
// Version: 4.6
|
||||
// </auto-generated>
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
public unsafe partial class OpenGLFunction
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MultiDrawArraysIndirectCount(uint mode, IntPtr* indirect, nint drawcount, int maxdrawcount, int stride)
|
||||
public void MultiDrawArraysIndirectCount(
|
||||
uint mode,
|
||||
ReadOnlySpan<IntPtr> indirect,
|
||||
nint drawcount,
|
||||
int maxdrawcount,
|
||||
int stride
|
||||
)
|
||||
{
|
||||
Context.glMultiDrawArraysIndirectCount(mode, indirect, drawcount, maxdrawcount, stride);
|
||||
fixed (IntPtr* indirectPtr = indirect) {
|
||||
Context.glMultiDrawArraysIndirectCount(mode, indirectPtr, drawcount, maxdrawcount,
|
||||
stride);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MultiDrawElementsIndirectCount(uint mode, uint type, IntPtr* indirect, nint drawcount, int maxdrawcount, int stride)
|
||||
public void MultiDrawElementsIndirectCount(
|
||||
uint mode,
|
||||
ShaderType type,
|
||||
ReadOnlySpan<IntPtr> indirect,
|
||||
nint drawcount,
|
||||
int maxdrawcount,
|
||||
int stride
|
||||
)
|
||||
{
|
||||
Context.glMultiDrawElementsIndirectCount(mode, type, indirect, drawcount, maxdrawcount, stride);
|
||||
fixed (IntPtr* indirectPtr = indirect) {
|
||||
Context.glMultiDrawElementsIndirectCount(mode, (uint)type, indirectPtr, drawcount,
|
||||
maxdrawcount, stride);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void PolygonOffsetClamp(float factor, float units, float clamp)
|
||||
public void PolygonOffsetClamp(
|
||||
float factor,
|
||||
float units,
|
||||
float clamp
|
||||
)
|
||||
{
|
||||
Context.glPolygonOffsetClamp(factor, units, clamp);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SpecializeShader(GlHandle shader, byte* pEntryPoint, uint numSpecializationConstants, uint* pConstantIndex, uint* pConstantValue)
|
||||
public void SpecializeShader(
|
||||
GlHandle shader,
|
||||
ReadOnlySpan<byte> pEntryPoint,
|
||||
uint numSpecializationConstants,
|
||||
ReadOnlySpan<uint> pConstantIndex,
|
||||
ReadOnlySpan<uint> pConstantValue
|
||||
)
|
||||
{
|
||||
Context.glSpecializeShader(shader.Value, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue);
|
||||
fixed (byte* pEntryPointPtr = pEntryPoint)
|
||||
{
|
||||
fixed (uint* pConstantIndexPtr = pConstantIndex)
|
||||
{
|
||||
fixed (uint* pConstantValuePtr = pConstantValue) {
|
||||
Context.glSpecializeShader(shader.Value, pEntryPointPtr,
|
||||
numSpecializationConstants, pConstantIndexPtr,
|
||||
pConstantValuePtr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glRenderStream"
|
||||
// Project: StgSharp
|
||||
@@ -62,9 +62,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
if (ContextHandle == default)
|
||||
{
|
||||
ContextHandle = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(OpenglContext)));
|
||||
ContextHandle = Marshal.AllocHGlobal(Marshal.SizeOf<OpenglContext>());
|
||||
OpenglContext* contextID = (OpenglContext*)ContextHandle;
|
||||
contextID->glGetString = (delegate*<uint, IntPtr>)IntPtr.Zero;
|
||||
contextID->glGetString = (delegate*<uint,byte*>)IntPtr.Zero;
|
||||
}
|
||||
if (GL == null) {
|
||||
_context = OpenGLFunction.BuildGlFunctionPackage(ContextHandle);
|
||||
@@ -115,10 +115,15 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public override void SetSizeLimit(int minWidth, int minHeight, int maxWidth, int maxHeight)
|
||||
public override void SetSizeLimit(
|
||||
int minWidth,
|
||||
int minHeight,
|
||||
int maxWidth,
|
||||
int maxHeight
|
||||
)
|
||||
{
|
||||
GraphicFramework.glfwSetWindowSizeLimits(
|
||||
this.CanvasHandle, minWidth, minHeight, maxWidth, maxHeight);
|
||||
GraphicFramework.glfwSetWindowSizeLimits(this.CanvasHandle, minWidth, minHeight,
|
||||
maxWidth, maxHeight);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -135,7 +140,10 @@ namespace StgSharp.Graphics.OpenGL
|
||||
CustomizeDeinit();
|
||||
}
|
||||
|
||||
protected sealed override Uniform<Matrix44> NativeCameraUniform(ShaderProgram source, string name)
|
||||
protected sealed override Uniform<Matrix44> NativeCameraUniform(
|
||||
ShaderProgram source,
|
||||
string name
|
||||
)
|
||||
{
|
||||
NativeCamera.GainAllUniforms(source, name);
|
||||
return NativeCamera.convertedUniform;
|
||||
@@ -145,30 +153,41 @@ namespace StgSharp.Graphics.OpenGL
|
||||
protected sealed override void NativeCameraViewRange(
|
||||
Radius fieldOfRange,
|
||||
Vec2 offset,
|
||||
(float frontDepth, float backDepth) viewDepth)
|
||||
(float frontDepth, float backDepth) viewDepth
|
||||
)
|
||||
{
|
||||
NativeCamera.SetViewRange(fieldOfRange, this.Size, offset, viewDepth);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
protected sealed override void NativeCameraViewTarget(Vec3 position, Vec3 direction, Vec3 up)
|
||||
protected sealed override void NativeCameraViewTarget(
|
||||
Vec3 position,
|
||||
Vec3 direction,
|
||||
Vec3 up
|
||||
)
|
||||
{
|
||||
NativeCamera.SetViewDirection(position, direction, up);
|
||||
}
|
||||
|
||||
#region Key Control
|
||||
|
||||
protected KeyStatus CheckKey(KeyboardKey key)
|
||||
protected KeyStatus CheckKey(
|
||||
KeyboardKey key
|
||||
)
|
||||
{
|
||||
return GraphicFramework.glfwGetKey(this.CanvasHandle, (int)key);
|
||||
}
|
||||
|
||||
protected KeyStatus CheckKey(Mouse key)
|
||||
protected KeyStatus CheckKey(
|
||||
Mouse key
|
||||
)
|
||||
{
|
||||
return GraphicFramework.glfwGetKey(this.CanvasHandle, (int)key);
|
||||
}
|
||||
|
||||
protected KeyStatus CheckKey(Joystick key)
|
||||
protected KeyStatus CheckKey(
|
||||
Joystick key
|
||||
)
|
||||
{
|
||||
return GraphicFramework.glfwGetKey(this.CanvasHandle, (int)key);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glType"
|
||||
// Project: StgSharp
|
||||
@@ -35,7 +35,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
{
|
||||
internal delegate void GLVULKANPROCNV();
|
||||
|
||||
public unsafe struct glHandleARB(IntPtr value) { }
|
||||
public unsafe struct glHandleARB(
|
||||
IntPtr value
|
||||
) { }
|
||||
|
||||
/// <summary>
|
||||
/// OpenGL numeric type. An IEEE-754 floating-point value, clamped to the range [0,1].
|
||||
@@ -46,7 +48,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
public float value;
|
||||
|
||||
public GlClampF(float a)
|
||||
public GlClampF(
|
||||
float a
|
||||
)
|
||||
{
|
||||
value = a;
|
||||
}
|
||||
@@ -54,7 +58,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit, Size = 16)]
|
||||
public struct glHalfNv(Half bin)
|
||||
public struct glHalfNv(
|
||||
Half bin
|
||||
)
|
||||
{
|
||||
|
||||
[FieldOffset(0)] public Half binary = bin;
|
||||
@@ -66,6 +72,14 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct glSync
|
||||
{
|
||||
|
||||
public IntPtr Handle;
|
||||
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit, Size = 8)]
|
||||
public struct GlFixed
|
||||
{
|
||||
@@ -86,7 +100,9 @@ namespace StgSharp.Graphics.OpenGL
|
||||
|
||||
public double value;
|
||||
|
||||
public GlClampD(double a)
|
||||
public GlClampD(
|
||||
double a
|
||||
)
|
||||
{
|
||||
value = a;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -63,10 +63,10 @@ namespace StgSharp.Internal.Intrinsic
|
||||
internal unsafe struct IntrinsicContext
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<char*, int, int> city_hash_simplify; //city_hash_simplify
|
||||
public delegate* unmanaged[Cdecl]<int, ulong> factorial_simd; //factorial_simd
|
||||
public delegate* unmanaged[Cdecl]<char*, int, int, int> index_pair; //index_pair
|
||||
public delegate* unmanaged[Cdecl]<Vector4*, Vector4*, void> vec_f32_normalize_3; //f32_normalize_3
|
||||
public delegate* unmanaged[Cdecl]<char*, int, int> city_hash_simplify; // city_hash_simplify
|
||||
public delegate* unmanaged[Cdecl]<int, ulong> factorial_simd; // factorial_simd
|
||||
public delegate* unmanaged[Cdecl]<char*, int, int, int> index_pair; // index_pair
|
||||
public delegate* unmanaged[Cdecl]<Vector4*, Vector4*, void> vec_f32_normalize_3; // f32_normalize_3
|
||||
public MatrixIntrinsicArray mat; // mat[4] in native order
|
||||
|
||||
public IntrinsicContext()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="StructDefine"
|
||||
// Project: StgSharp
|
||||
@@ -39,18 +39,6 @@ namespace StgSharp.Internal
|
||||
|
||||
using GLFWbool = Boolean;
|
||||
|
||||
#region glad struct
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct GLsync
|
||||
{
|
||||
|
||||
public IntPtr Handle;
|
||||
|
||||
}
|
||||
|
||||
#endregion glad struct
|
||||
|
||||
// strucs defined in GLFW3.h
|
||||
|
||||
#region GLFW3 struct
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="ShowViewPort"
|
||||
// Project: StgSharp
|
||||
@@ -53,7 +53,9 @@ namespace StgSharp.MVVM.ViewModel
|
||||
/// <summary>
|
||||
/// CustomizeInit this form and render it on screen, and respond with operation
|
||||
/// </summary>
|
||||
public unsafe void UseViewModel(string viewEntryName)
|
||||
public unsafe void UseViewModel(
|
||||
string viewEntryName
|
||||
)
|
||||
{
|
||||
CustomizeInitialize();
|
||||
UseViewInNextFrame(viewEntryName);
|
||||
@@ -62,7 +64,9 @@ namespace StgSharp.MVVM.ViewModel
|
||||
if (_nextView != _currentView) {
|
||||
_ = Interlocked.Exchange(ref _currentView, _nextView);
|
||||
}
|
||||
Thread renderThread = new Thread((token) => {
|
||||
Thread renderThread = new Thread((
|
||||
token
|
||||
) => {
|
||||
try
|
||||
{
|
||||
ProcessFrameWithoutEvent();
|
||||
@@ -92,7 +96,9 @@ namespace StgSharp.MVVM.ViewModel
|
||||
frameTimeProvider.Dispose();
|
||||
}
|
||||
|
||||
protected void UseViewInNextFrame(string name)
|
||||
protected void UseViewInNextFrame(
|
||||
string name
|
||||
)
|
||||
{
|
||||
if (!allView.TryGetValue(name, out ViewBase v)) {
|
||||
throw new KeyNotFoundException(
|
||||
@@ -101,7 +107,10 @@ namespace StgSharp.MVVM.ViewModel
|
||||
CurrentView = v;
|
||||
}
|
||||
|
||||
private void CountFps(object sender, EventArgs e)
|
||||
private void CountFps(
|
||||
object sender,
|
||||
EventArgs e
|
||||
)
|
||||
{
|
||||
Interlocked.Exchange(ref _frameSpeed, _frameCount);
|
||||
Interlocked.Exchange(ref _frameCount, 0);
|
||||
@@ -118,7 +127,10 @@ namespace StgSharp.MVVM.ViewModel
|
||||
|
||||
private void ProcessFrameWithoutEvent()
|
||||
{
|
||||
frameTimeProvider.TimeSpanRefreshed += (_, _) => { };
|
||||
frameTimeProvider.TimeSpanRefreshed += (
|
||||
_,
|
||||
_
|
||||
) => { };
|
||||
while (_closed)
|
||||
{
|
||||
foreach (ViewPort context in CurrentView.Render) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="ViewModel"
|
||||
// Project: StgSharp
|
||||
@@ -62,55 +62,67 @@ namespace StgSharp.MVVM.ViewModel
|
||||
internal TimeSpanProvider frameTimeProvider;
|
||||
internal Vector4 backgroundColor;
|
||||
|
||||
protected ViewModelBase(int frameSpeed)
|
||||
protected ViewModelBase(
|
||||
int frameSpeed
|
||||
)
|
||||
{
|
||||
viewPortDisplay = new ViewPort();
|
||||
allView = [];
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, 1.0 / frameSpeed), TimeSpanProvider.DefaultProvider);
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, 1.0 / frameSpeed), TimeSpanProvider.DefaultProvider);
|
||||
_frameSpeed = 0;
|
||||
_frameCount = 0;
|
||||
long frameLength = (FrameSpeed > 0) ? (1000L * 1000L / FrameSpeed) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, 1.0 / frameSpeed), TimeSpanProvider.DefaultProvider);
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, 1.0 / frameSpeed), TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
protected ViewModelBase(double frameLength)
|
||||
protected ViewModelBase(
|
||||
double frameLength
|
||||
)
|
||||
{
|
||||
viewPortDisplay = new ViewPort();
|
||||
allView = [];
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, frameLength), TimeSpanProvider.DefaultProvider);
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, frameLength), TimeSpanProvider.DefaultProvider);
|
||||
_frameSpeed = 0;
|
||||
_frameCount = 0;
|
||||
long _frameLength = (FrameSpeed > 0) ? ((long)(1000 * frameLength)) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, frameLength), TimeSpanProvider.DefaultProvider);
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, frameLength), TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
public ViewModelBase(ViewPort vBinding, int frameSpeed)
|
||||
public ViewModelBase(
|
||||
ViewPort vBinding,
|
||||
int frameSpeed
|
||||
)
|
||||
{
|
||||
viewPortDisplay = vBinding;
|
||||
allView = [];
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, 1.0), TimeSpanProvider.DefaultProvider);
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, 1.0), TimeSpanProvider.DefaultProvider);
|
||||
_frameSpeed = 0;
|
||||
_frameCount = 0;
|
||||
long frameLength = (frameSpeed > 0) ? (1000L * 1000L / frameSpeed) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, 1.0 / frameSpeed), TimeSpanProvider.DefaultProvider);
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, 1.0 / frameSpeed), TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
public ViewModelBase(ViewPort vBinding, double frameLength)
|
||||
public ViewModelBase(
|
||||
ViewPort vBinding,
|
||||
double frameLength
|
||||
)
|
||||
{
|
||||
viewPortDisplay = vBinding;
|
||||
allView = [];
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, 1.0), TimeSpanProvider.DefaultProvider);
|
||||
fpsCountProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, 1.0), TimeSpanProvider.DefaultProvider);
|
||||
_frameSpeed = 0;
|
||||
_frameCount = 0;
|
||||
long _frameLength = (FrameSpeed > 0) ? ((long)(1000 * frameLength)) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.MaxValue, frameLength), TimeSpanProvider.DefaultProvider);
|
||||
frameTimeProvider = new TimeSpanProvider(TimeSequence.CreateLinear(double.PositiveInfinity, frameLength), TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
public DataBindingEntry this[string name]
|
||||
public DataBindingEntry this[
|
||||
string name
|
||||
]
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -189,11 +201,15 @@ namespace StgSharp.MVVM.ViewModel
|
||||
/// Maximum Size of current form. In form of a <see cref="Vec2" /> of (width,height)
|
||||
/// </param>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetSizeLimit(Vec2 minSize, Vec2 maxSize)
|
||||
public void SetSizeLimit(
|
||||
Vec2 minSize,
|
||||
Vec2 maxSize
|
||||
)
|
||||
{
|
||||
ThreadHelper.MainThreadAssert();
|
||||
GraphicFramework.glfwSetWindowSizeLimits(this.viewPortDisplay.ViewPortHandle, (int)minSize.X,
|
||||
(int)minSize.Y, (int)maxSize.X, (int)maxSize.Y);
|
||||
GraphicFramework.glfwSetWindowSizeLimits(this.viewPortDisplay.ViewPortHandle,
|
||||
(int)minSize.X, (int)minSize.Y, (int)maxSize.X,
|
||||
(int)maxSize.Y);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -212,16 +228,26 @@ namespace StgSharp.MVVM.ViewModel
|
||||
/// Maximum height of current form
|
||||
/// </param>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetSizeLimit(int minWidth, int minHeight, int maxWidth, int maxHeight)
|
||||
public void SetSizeLimit(
|
||||
int minWidth,
|
||||
int minHeight,
|
||||
int maxWidth,
|
||||
int maxHeight
|
||||
)
|
||||
{
|
||||
ThreadHelper.MainThreadAssert();
|
||||
GraphicFramework.glfwSetWindowSizeLimits(this.viewPortDisplay.ViewPortHandle, minWidth, minHeight, maxWidth,
|
||||
maxHeight);
|
||||
GraphicFramework.glfwSetWindowSizeLimits(this.viewPortDisplay.ViewPortHandle, minWidth,
|
||||
minHeight, maxWidth, maxHeight);
|
||||
}
|
||||
|
||||
public abstract bool TryGetObjectReference(string name, out DataBindingEntry entry);
|
||||
public abstract bool TryGetObjectReference(
|
||||
string name,
|
||||
out DataBindingEntry entry
|
||||
);
|
||||
|
||||
protected unsafe void SetFrameSizeCallback(FrameBufferSizeHandler callback)
|
||||
protected unsafe void SetFrameSizeCallback(
|
||||
FrameBufferSizeHandler callback
|
||||
)
|
||||
{
|
||||
_resizeCallback = callback;
|
||||
IntPtr handlerPtr = Marshal.GetFunctionPointerForDelegate(callback);
|
||||
@@ -229,7 +255,11 @@ namespace StgSharp.MVVM.ViewModel
|
||||
viewPortDisplay.ViewPortHandle, (delegate* unmanaged[Cdecl]<IntPtr, int, int, void>)handlerPtr);
|
||||
}
|
||||
|
||||
private void DefaultFrameResizeCallback(IntPtr windowHandle, int width, int height)
|
||||
private void DefaultFrameResizeCallback(
|
||||
IntPtr windowHandle,
|
||||
int width,
|
||||
int height
|
||||
)
|
||||
{
|
||||
ViewPort.GetExistedViewPort(windowHandle, out ViewPort vp);
|
||||
vp.RequestFlushSizeInNextFrame(width, height);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="CollisionTexture"
|
||||
// Project: StgSharp
|
||||
@@ -47,7 +47,10 @@ namespace StgSharp.Stg
|
||||
public interface IOneDimensionalCollisionTexture2D
|
||||
{
|
||||
|
||||
public void Init(Radius angleStride, string name);
|
||||
public void Init(
|
||||
Radius angleStride,
|
||||
string name
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@@ -70,7 +73,9 @@ namespace StgSharp.Stg
|
||||
|
||||
public override bool IsContextSharable => false;
|
||||
|
||||
public void GenerateCollisionTexture(IEnumerable<IInstancingBuffer> bufferEnumeration)
|
||||
public void GenerateCollisionTexture(
|
||||
IEnumerable<IInstancingBuffer> bufferEnumeration
|
||||
)
|
||||
{
|
||||
fbo.Bind(0);
|
||||
GL.ClearColor(0, 0, 0, 1);
|
||||
@@ -92,7 +97,8 @@ namespace StgSharp.Stg
|
||||
|
||||
vbo.WriteVectorData<Vec4>(0, item.CoordAndRotationSpan, BufferUsage.StreamDraw);
|
||||
vao.SetVertexAttribute(1, 3, TypeCode.Single, false, 4 * sizeof(float), 0);
|
||||
vao.SetVertexAttribute(2, 1, TypeCode.Single, false, 4 * sizeof(float), 3 * sizeof(float));
|
||||
vao.SetVertexAttribute(2, 1, TypeCode.Single, false, 4 * sizeof(float),
|
||||
3 * sizeof(float));
|
||||
|
||||
vbo.WriteScalerData<float>(2, item.ScalingSpan, BufferUsage.StreamDraw);
|
||||
vao.SetVertexAttribute(3, 1, TypeCode.Single, false, sizeof(float), 0);
|
||||
@@ -100,22 +106,23 @@ namespace StgSharp.Stg
|
||||
vbo.WriteVectorData(1, g.VertexStream, BufferUsage.StreamDraw);
|
||||
vao.SetVertexAttribute(0, 3, TypeCode.Single, false, 4 * sizeof(float), 0);
|
||||
|
||||
GL.DrawElementsInstanced(
|
||||
GeometryType.TRIANGLES, ((uint)g.VertexIndices.Length) / 3, TypeCode.UInt32,
|
||||
IntPtr.Zero, (uint)item.ScalingSpan.Length);
|
||||
GL.DrawElementsInstanced(GeometryType.TRIANGLES, (g.VertexIndices.Length) / 3,
|
||||
TypeCode.UInt32, IntPtr.Zero, item.ScalingSpan.Length);
|
||||
}
|
||||
|
||||
t.Bind2D(0);
|
||||
GL.GetTextureImage(
|
||||
Texture2DTarget.Texture2D, 0, ImageChannel.SingleColor, PixelChannelLayout.Float,
|
||||
textureOutput);
|
||||
GL.GetTextureImage(Texture2DTarget.Texture2D, 0, ImageChannel.SingleColor,
|
||||
PixelChannelLayout.Float, textureOutput);
|
||||
VertexArray.BindNull();
|
||||
}
|
||||
|
||||
public void Init(Radius angleStride, string name)
|
||||
public void Init(
|
||||
Radius angleStride,
|
||||
string name
|
||||
)
|
||||
{
|
||||
primeArgs = new ViewPort(
|
||||
1, (int)((new Radius(Scalar.Pi)) / angleStride), name, IntPtr.Zero);
|
||||
primeArgs = new ViewPort(1, (int)((new Radius(Scalar.Pi)) / angleStride), name,
|
||||
IntPtr.Zero);
|
||||
|
||||
PlatformSpecifiedInitialize();
|
||||
CustomizeInit();
|
||||
@@ -155,15 +162,15 @@ namespace StgSharp.Stg
|
||||
|
||||
t = CreateTexture(1);
|
||||
t.Bind2D(0);
|
||||
GL.TextureImage2d<byte>
|
||||
(Texture2DTarget.Texture2D, 0, ImageChannel.WithAlphaChannel, (uint)Width, (uint)Height
|
||||
, ImageChannel.WithAlphaChannel, PixelChannelLayout.Byte, Array.Empty<byte>());
|
||||
GL.TextureImage2d<byte>(Texture2DTarget.Texture2D, 0, ImageChannel.WithAlphaChannel,
|
||||
Width, Height, ImageChannel.WithAlphaChannel,
|
||||
PixelChannelLayout.Byte, Array.Empty<byte>());
|
||||
|
||||
t.Set2dWrapProperty(0, TextureWrap.Repeat, TextureWrap.Repeat);
|
||||
t.Set2dFilterProperty(0, TextureFilter.Nearest, TextureFilter.Nearest);
|
||||
|
||||
GL.FrameBufferTexture2d(
|
||||
FrameBufferTarget.All, glAttachment.Color(0), Texture2DTarget.Texture2D, t[0], 0);
|
||||
GL.FrameBufferTexture2d(FrameBufferTarget.All, glAttachment.Color(0),
|
||||
Texture2DTarget.Texture2D, t[0], 0);
|
||||
|
||||
GL.CombineFrameBufferRenderBuffer(FrameBufferAttachment.Color, rbo[0]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user