mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2026-08-15 15:07:48 +04:00
36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
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;
|
||
|
|
}
|
||
|
|
}
|