Files
parkan-playground/NResUI/Rendering/Viewport/OpenGL/ViewportTextureLoader.cs
T

36 lines
1.2 KiB
C#
Raw Normal View History

2026-06-06 21:26:56 +03:00
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;
}
}