material initial and pose fix

This commit is contained in:
bird_egop
2026-06-06 21:26:56 +03:00
parent 776bb9fcb3
commit 5baf3f324f
13 changed files with 536 additions and 248 deletions
@@ -54,6 +54,11 @@ public sealed unsafe class ShaderProgram
_gl.Uniform3(location, value.X, value.Y, value.Z);
}
public void SetInt(int location, int value)
{
_gl.Uniform1(location, value);
}
public void SetVector4(int location, Vector4 value)
{
_gl.Uniform4(location, value.X, value.Y, value.Z, value.W);
@@ -0,0 +1,35 @@
using Silk.NET.OpenGL;
namespace NResUI.Rendering.Viewport.OpenGL;
public static unsafe class ViewportTextureLoader
{
public static uint CreateRgbaTexture(GL gl, byte[] rgba, int width, int height)
{
var texture = gl.GenTexture();
gl.BindTexture(TextureTarget.Texture2D, texture);
fixed (byte* data = rgba)
{
gl.TexImage2D(
TextureTarget.Texture2D,
0,
InternalFormat.Rgba8,
(uint)width,
(uint)height,
0,
PixelFormat.Rgba,
PixelType.UnsignedByte,
data);
}
gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat);
gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat);
gl.GenerateMipmap(TextureTarget.Texture2D);
gl.BindTexture(TextureTarget.Texture2D, 0);
return texture;
}
}