88 lines
3.5 KiB
C#
88 lines
3.5 KiB
C#
// <auto-generated>
|
|
// Generated by StgSharp.GenerateGL on 2026-08-25 09:22:55Z
|
|
// Uniform overloads introduced in OpenGL 4.0
|
|
// </auto-generated>
|
|
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using StgSharp.Mathematics.Graphics;
|
|
|
|
namespace StgSharp.Graphics.OpenGL
|
|
{
|
|
public unsafe partial class OpenGLFunction
|
|
{
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double> uniform, double v0)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
Context.glUniform1d(uniform.id.SignedValue, v0);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double> uniform, ReadOnlySpan<double> values)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
fixed (double* valuesPtr = values) {
|
|
Context.glUniform1dv(uniform.id.SignedValue, values.Length, valuesPtr);
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double, double> uniform, double v0, double v1)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
Context.glUniform2d(uniform.id.SignedValue, v0, v1);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double, double> uniform, ReadOnlySpan<double> values)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
if ((values.Length % 2) != 0) {
|
|
throw new ArgumentException("Uniform data length must be divisible by 2.", nameof(values));
|
|
}
|
|
fixed (double* valuesPtr = values) {
|
|
Context.glUniform2dv(uniform.id.SignedValue, values.Length / 2, valuesPtr);
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double, double, double> uniform, double v0, double v1, double v2)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
Context.glUniform3d(uniform.id.SignedValue, v0, v1, v2);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double, double, double> uniform, ReadOnlySpan<double> values)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
if ((values.Length % 3) != 0) {
|
|
throw new ArgumentException("Uniform data length must be divisible by 3.", nameof(values));
|
|
}
|
|
fixed (double* valuesPtr = values) {
|
|
Context.glUniform3dv(uniform.id.SignedValue, values.Length / 3, valuesPtr);
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double, double, double, double> uniform, double v0, double v1, double v2, double v3)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
Context.glUniform4d(uniform.id.SignedValue, v0, v1, v2, v3);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public void SetUniformValue(Uniform<double, double, double, double> uniform, ReadOnlySpan<double> values)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(uniform);
|
|
if ((values.Length % 4) != 0) {
|
|
throw new ArgumentException("Uniform data length must be divisible by 4.", nameof(values));
|
|
}
|
|
fixed (double* valuesPtr = values) {
|
|
Context.glUniform4dv(uniform.id.SignedValue, values.Length / 4, valuesPtr);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|